【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

你可能感兴趣的:(【Python】Python中的match、search、findall、finditer区别)