Python正则表达式搜索vs匹配

2024-09-29 23:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python正则表达式来匹配“BrahuiHan”或“BrahuiYourba”

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

('BrahuiHan50', 'Han')

这只返回一组,第一组,我想它也应该返回第二组。i、 布拉维约鲁巴


Tags: researchgroupshanyorubabrahuihan50brahuihanbrahuiyourba
2条回答

如果要捕获模式的所有匹配项,则需要使用^{}

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

re.search将只捕获第一个事件。你知道吗

试试看

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

相关问题 更多 >

    热门问题