Python之正则常用函数详解
案例一:
#complie编译后执行速度更快,findall返回匹配列表
import re
r=r'a[bcd]e'
p=re.compile(r)
print(re.findall(r,'abe,ace,ade,afe'))
代码执行结果: ['abe', 'ace', 'ade']
案例二:
import re
r=r'(a[bcd]e)'
res=re.match(r,'abe,ace,ade,afe')
代码执行结果: ('abe',)
print(res.groups())代码执行结果:['ac', 'aac', 'aaac', 'aaac']
案例三:
import re
r=r'(a[bcd]e)'
res=re.match(r,'afe,ace,ade')
print(res.groups()) #match只匹配字符串的开头,afe不对,就返回none
代码执行结果:None
注意事项:在新版本中res.groups函数已不能使用。
案例四:
#search匹配字符串全文,返回之一个匹配的内容
import re
r=r'(a[bcd]e)'
ress=re.search(r,'afe,ace,ade')
print(ress.groups())#search是匹配全文,之一个afe不对,不输出,第二个是对的,算是之一个匹配的就输出
代码执行结果:('ace',)
案例五:
import re
str = 'welcome to python world!'
r=r'(.*)to(.*?).*'
matchObj=re.match(r,str)
if matchObj:
print(matchObj.group())
print(matchObj.group(1))
print(matchObj.group(2))
print(matchObj.groups())
print(matchObj.group(1,2))
else:
print('no match')
代码执行结果:
案例六:
import re
r=r'1a*?'
print(re.findall(r,'1bc,1ac,1aac,a1aac,'))
代码执行结果:['1', '1', '1', '1']