正则表达式的match、search、findall、finditer
@2022/7/13 重新梳理正则模块各个方法的使用
太长不看版:
例如,判断一个字符串是否符合手机号或邮箱的正则,使用match或search都行。只会匹配一次,匹配成功就返回结果,匹配不到就失败。
pattern = re.compile('1[0-9]{10}')
result = pattern.match('13712341234')
print(result)
print(result.group())
例如,需要从一段html里获取所有的图片url,使用findall或finditer;如果仅需要获取图片url中的文件名,配合分组食用最佳。如果使用了分组,只能使用finditer
pattern = re.compile('http://[a-z0-9\./]*\.com/img/([0-9a-z]*)\.[a-z]{3,4}')
result = pattern.finditer('<div><img href="http://xx.com/img/a.jpg"></img><img href="http://xx2.com/img/b.gif"></img></div>')
if result:
for m in result:
print(m.group(1))
print(m.group())