一.匹配函数
- re.match(匹配字符段,str)
表示在str中从头开始匹配字符段,并将匹配结果返回 - re.search(匹配字符段,str)
表示在str中遍历所匹配的字符段,一旦找到了一个,即停止遍历,并将匹配结果返回 - re.findall(匹配字符段,str)
表示在str中遍历所匹配的字符段,找到了一个还会继续找下一个,直到所有字符段都被找到为止
二.正则预定义
注意带
\
的在正则表达式中要在前面加一个\
进行一次转义才能使用,如\\s
其对应的大写形式代表非空格,非数字…
\s
:表示空格\b
:表示边界\d
:表示数字\w
:表示字母数字_
三.定义匹配次数
*
:表示前面的字符匹配次数 >=0 次+
:表示前面的字符匹配次数 >=1次?
:表示前面的字符匹配次数要不为 0 要不为 1{m}
:表示前面的字符匹配次数为m次{m,}
:表示前面的字符匹配次数大于等于m次{m,n}
:表示前面的字符匹配次数为[m,n]次^
:表示从头开始匹配$
:表示匹配到字符结尾
四.关系
.
:表示任意字符[ ]
:表示这一个字符匹配对应的字符范围|
:或者( )
:表示分组。后面会通过group(序号)来获取对应的组
五.贪婪模式和非贪婪模式
Python里数量词进行字符匹配时默认是贪婪的,总是尝试匹配尽可能多的字符。
非贪婪模式则刚好相反,总是尝试匹配尽可能少的字符。
在*
,?
,+
,{m,n}
,{m,}
中加上 ?
,就可以把贪婪模式变成非贪婪模式