Python正则表达式搜索vs匹配

时间:2014-06-24 18:09:23

标签: python regex

我试图使用python正则表达式匹配BrahuiHan'或者' BrahuiYourba'

>> re.search(r'((Brahui|Han|Yoruba)+\d+)', '10xBrahuiHan50_10xBrahuiYoruba50n4').groups()

('BrahuiHan50', 'Han')

这只返回一组,第一组,我认为它也应该返回第二组。即BrahuiYoruba

2 个答案:

答案 0 :(得分:1)

如果要捕获所有出现的模式,则需要使用re.findall

>>> import re
>>> re.findall(r'((Brahui|Han|Yoruba)+\d+)', '10xBrahuiHan50_10xBrahuiYoruba50n4')
[('BrahuiHan50', 'Han'), ('BrahuiYoruba50', 'Yoruba')]
>>>

re.search只捕获第一次出现。

答案 1 :(得分:1)

尝试

import re
regex = re.compile("((Brahui|Han|Yoruba)\\d{1,})")
testString = "" # fill this in
matchArray = regex.findall(testString)
# the matchArray variable contains the list of matches

以下是debuggex

上的演示

图示:

enter image description here