Python這6個正則表達(dá)式常用高頻函數(shù)是重中之重,你會嗎?收藏了
Python之正則常用函數(shù)詳解
案例一:

#complie編譯后執(zhí)行速度更快,findall返回匹配列表
import re
r=r'a[bcd]e'
p=re.compile(r)
print(re.findall(r,'abe,ace,ade,afe'))
代碼執(zhí)行結(jié)果: ['abe', 'ace', 'ade']

案例二:

import re
r=r'(a[bcd]e)'
res=re.match(r,'abe,ace,ade,afe')
代碼執(zhí)行結(jié)果: ('abe',)

print(res.groups())代碼執(zhí)行結(jié)果:['ac', 'aac', 'aaac', 'aaac']

案例三:

import re
r=r'(a[bcd]e)'
res=re.match(r,'afe,ace,ade')
print(res.groups()) #match只匹配字符串的開頭,afe不對,就返回none
代碼執(zhí)行結(jié)果:None
注意事項(xiàng):在新版本中res.groups函數(shù)已不能使用。
案例四:

#search匹配字符串全文,返回第一個匹配的內(nèi)容
import re
r=r'(a[bcd]e)'
ress=re.search(r,'afe,ace,ade')
print(ress.groups())#search是匹配全文,第一個afe不對,不輸出,第二個是對的,算是第一個匹配的就輸出
代碼執(zhí)行結(jié)果:('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')
代碼執(zhí)行結(jié)果:

案例六:
import re
r=r'1a*?'
print(re.findall(r,'1bc,1ac,1aac,a1aac,'))
代碼執(zhí)行結(jié)果:['1', '1', '1', '1']