- A+
描述规则
Python中的re模块
re.match(正则表达式,匹配的字符)
re.match是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则match方法返回匹配对象(Match Object),否则返回None(注意不是空字符串"")。
单字符匹配
字符 |
功能 |
. |
匹配任意1个字符(除了 |
[ ] |
匹配[ ]中列举的字符 |
d |
匹配数字,即0-9 |
D |
匹配非数字,即不是数字 |
s |
匹配空白,即 空格,tab键 |
S |
匹配非空白 |
w |
匹配单词字符,即a-z、A-Z、0-9、_ |
W |
匹配非单词字符 |
[a-z7-9] a到z 和7到9
d ==[0-9]
D==[^0-9]
w==[a-z 0-9]
原始字符串
Python中字符串前面加上 r 表示原生字符串
假如你需要匹配文本中的字符"",那么使用编程语言表示的正则表达式里将需要4个反斜杠""
表示数量的信息
字符 |
功能 |
* |
匹配前一个字符出现0次或者无限次,即可有可无 |
+ |
匹配前一个字符出现1次或者无限次,即至少有1次 |
? |
匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{m} |
匹配前一个字符出现m次 |
{m,} |
匹配前一个字符至少出现m次 |
{m,n} |
匹配前一个字符出现从m到n次 |
字符串中的转义字符 需多次转义
字符串前 r 忽略转义字符
边界信息
字符 |
功能 |
^ |
匹配字符串开头 |
$ |
匹配字符串结尾 |
匹配一个单词的边界 |
|
B |
匹配非单词边界 |
匹配分组
字符 |
功能 |
| |
匹配左右任意一个表达式 |
(ab) |
将括号中字符作为一个分组 |
um |
引用分组num匹配到的字符串 |
(?P<name>) |
分组起别名 |
(?P=name) |
引用别名为name分组匹配到的字符串 |
re的高级使用
search 匹配 匹配到一个后就停止
findall 所有的都列出来
sub (正则表达式,替换,处理的字符串) 将匹配到的数据进行替换
split根据匹配切割字符串进行 ,并返回一个列表
贪婪模式
Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;
解决方式:非贪婪操作符"?",这个操作符可以用在"*","+","?"的后面,要求正则匹配的越少越好