在線正則表達試測試鏈接
正則匹配
import re
content= "wen15526474965min"
result= re.match('^w.*n$', content)
print (result)
print (result.group())
print (result.span())
結(jié)果為
<_sre.SRE_Match object; span=(0, 17), match='wen15526474965min'>
wen15526474965min
(0, 17)
匹配目標(biāo)分組匹配
import re
content= "wen 15526474965 min"
result= re.match('^w.*\s(\d+)\smin$', content)
print (result)
print (result.group(1))
print (result.span())
print(len(content))
結(jié)果為
<_sre.SRE_Match object; span=(0, 19), match='wen 15526474965 min'>
15526474965
(0, 19)
19
貪婪模式匹配
.*匹配盡可能多的字符
import re
content= "wen 15526474965 min"
result= re.match('^w.*(\d+)\smin$', content)
print (result)
print (result.group(1))
print (result.span())
print(len(content))
結(jié)果為
<_sre.SRE_Match object; span=(0, 19), match='wen 15526474965 min'>
5
(0, 19)
19
非貪婪模式匹配
.*?匹配盡可能少的字符
import re
content= "wen 15526474965 min"
result= re.match('^w.*?(\d+)\smin$', content)
print (result)
print (result.group(1))
print (result.span())
print(len(content))
結(jié)果為
<_sre.SRE_Match object; span=(0, 19), match='wen 15526474965 min'>
15526474965
(0, 19)
19
匹配模式
re.match加參數(shù)re.s可匹配換行符
import re
content= "wen 15526474965 m" \
"in"
result= re.match('^w.*?(\d+).*n$',content,re.S)
print (result)
print(result.group(1))
結(jié)果為
<_sre.SRE_Match object; span=(0, 19), match='wen 15526474965 min'>
15526474965
總結(jié)
盡量使用泛匹配模式.* 和非貪婪模式 .*? 如果有換行符翁逞,match函數(shù)加參數(shù)re.S推汽。如果要匹配通配符试和,在通配符前加轉(zhuǎn)義符\
re.compile 將正則表達式轉(zhuǎn)為編譯對象
import re
content= "wen 15526474965 m" \
"in"
pattern= re.compile('^w.*?(\d+).*n$',re.S)
result= re.match(pattern,content)
print (result)
print(result.group(1))