1、match
re.match(pattern, string[, flags])
从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。
2、search
re.search(pattern, string[, flags])
若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。
3、findall
re.findall(pattern, string[, flags])
返回string中所有与pattern相匹配的全部字串,返回形式为数组。
4、finditer
re.finditer(pattern, string[, flags])
返回string中所有与pattern相匹配的全部字串,返回形式为迭代器。
预加载正则表达式
obj = re.compile(r’\d+')
import re
# 预加载正则表达式
obj = re.compile(r'\d+')
# search,返回结果是match对象,显示完整数据需要.group()
resp = obj.search("我的手机号:1345434,他的手机号:676318")
print("search工具查询:"+resp.group())
# match是从头开始匹配
resp = obj.match("1345436,他的手机号:676318")
print("match工具查询:"+resp.group())
# findall查找所有内容
resp = obj.findall("我的手机号:1345437,他的手机号:676318")
print(f"findall工具查询:{resp}")
# finditer查找出来结果,返回iter迭代内容
resp = obj.finditer("我的手机号:1345439,他的手机号:676318")
for i in resp:
print("finditer查找结果,循环遍历:"+i.group())
输出结果:
C:\Programs\Python\vis\Scripts\python.exe D:/pythonTest/test01/search和match.py
search工具查询:1345434
match工具查询:1345436
findall工具查询:['1345437', '676318']
finditer查找结果,循环遍历:1345439
finditer查找结果,循环遍历:676318
Process finished with exit code 0
group() 同group(0)就是匹配正则表达式整体结果
group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分
免费源码获得:关注微信公众号:ancenok,然后回复:021