【Python】Python中的match、search、findall、finditer区别

1.match

match(pattern, string, flags=0)

从首字母开始匹配,如果string包含pattern子串,就匹配成功返回Match对象;如不包含就匹配失败,则返回None。

2.search

search(pattern, string, flags=0)

若string中包含pattern子串,就匹配成功返回Match对象;如不包含就匹配失败,则返回None。

3.findall

findall(pattern, string, flags=0)

返回string中所有与pattern相匹配的全部字串,返回形式为数组。

4.finditer

finditer(pattern, string, flags=0)

返回string中所有与pattern相匹配的全部字串,返回形式为iterator,iterator的容器是Match对象。

match和search都是返回Match对象,在如果string中存在多个pattern子串,只返回第一个。获取匹配结果则需要调用Match对象的group()、groups或group(index)。

例子:

>>> import re
>>> content='3523wrwpepe2334kwoiero'
>>> pattern=r'(\d*)([a-zA-Z]*)'
>>> match_result=re.match(pattern,content)
>>> print "match:",match_result.group()
match: 3523wrwpepe
>>> search_result=re.search(pattern,content)
>>> print "search:",search_result.group()
search: 3523wrwpepe
>>> re_findall=re.findall(pattern,content)
>>> print "findall:"
findall:
>>> for item in re_findall:
...     print item
... 
('3523', 'wrwpepe')
('2334', 'kwoiero')
('', '')
>>> finditer=re.finditer(pattern,content)
>>> print "finditer"
finditer
>>> for item in finditer:
...     print item.group()
... 
3523wrwpepe
2334kwoiero
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 4,082评论 0 13
  • re模块 开始使用re Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先将正则表达式的字符串...
    Alex陌阅读 1,344评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,224评论 19 139
  • 一 . 正则表达式中常用的字符含义 二 . re模块中常用的功能函数 一 . 正则表达式中常用的字符含义 下...
    敢梦敢当阅读 540评论 0 0
  • 对于旅行,每个人都有自己的理解,结婚前我们就约定每年都出去旅游一次,之前问过他觉得旅行的意义是什么?他说只为陪你!...
    西瓜丸子Z阅读 1,626评论 1 6