我试图使用python正则表达式匹配BrahuiHan'或者' BrahuiYourba'
>> re.search(r'((Brahui|Han|Yoruba)+\d+)', '10xBrahuiHan50_10xBrahuiYoruba50n4').groups()
('BrahuiHan50', 'Han')
这只返回一组,第一组,我认为它也应该返回第二组。即BrahuiYoruba
答案 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
上的演示图示: