1.基本函数
原生字符串中间的斜杠不被解释为转义符
上例是邮政编码和国内手机的正则表达式
即当正则表达式包含转义符时,使用raw string
re.IGNORECASE 匹配大小写
import re
match=re.search(r'[1-9]\d{5}','BIT 100081')
if match:
print(match.group(0))
结果:
100081
Process finished with exit code 0
import re
match=re.match(r'[1-9]\d{5}','100081 BIT')
if match:
match.group(0)
print(match.group(0))
import re
ls=re.findall(r'[1-9]\d{5}','BIT100081 TSU100084')
print(ls)
结果:
['100081', '100084']
Process finished with exit code 0
import re
ls=re.split(r'[1-9]\d{5}','BIT100081 TSU100084')
print(ls)
结果:
['BIT', ' TSU', '']
import re
ls=re.split(r'[1-9]\d{5}','BIT100081 TSU100084',maxsplit=1)
print(ls)
['BIT', ' TSU100084']
import re
for m in re.finditer(r'[1-9]\d{5}','BIT100081 TSU100084'):
if m:
print(m.group(0))
结果:
100081
100084
repl:replace替换
import re
print(re.sub(r'[1-9]\d{5}',':zipcode','BIT100081 TSU100084'))
结果:
BIT:zipcode TSU:zipcode
2.match对象
import re
match=re.search(r'[1-9]\d{5}','BIT 100081')
if match:
print(match.group(0))
print(type(match))
100081
<class 're.Match'>
import re
match=re.search(r'[1-9]\d{5}','BIT100081 TSU100084')
print(match.string)
print(match.re)#匹配时使用的pattern对象
print(match.pos)#开始位置
print(match.endpos)#结束位置,算上空格是19
print(match.group(0))#获得匹配后的字符串
print(match.start())
print(match.end())
print(match.span())#两个位置的二元关系
结果:
BIT100081 TSU100084
re.compile('[1-9]\\d{5}')
0
19
100081
3
9
(3, 9)
3.re库的贪婪匹配和最小匹配
PY.*N:表示PY开始N结尾的正则表达式