正则表达式match和search的区别

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子串,只返回第一个。

若匹配成功,match()/search()返回的是Match对象,获取匹配结果需要调用Match对象的group()、groups或group(index)方法。

string = 'aabttcdbeec'
res = re.match("b(.*?)c",string)
res

返回None。从string开始不能匹配成功。

string = 'aabttcdbeec'
res = re.search("b(.*?)c",string)
res

返回<re.Match object; span=(2, 6), match=’bttc’>
使用res.group(1)可以调用()里匹配的内容。

以上.*?是非贪婪模式;如果.*是贪婪模式,程序会进行最大匹配。

string = 'aabttcdbeec'
res = re.search("b(.*)c",string)
res

返回<re.Match object; span=(2, 11), match=’bttcdbeec’>
使用findall()可以返回所有匹配内容的列表。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,转载请注明出处。
文章名称:《正则表达式match和search的区别》
文章来自:泰恩数据
文章链接:https://tyne.cc/545.html
本站资源仅供个人学习使用,请勿用于商业用途。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址