用findall捕获组?


问题内容

如果可以,如何访问捕获的组findall(r'regex(with)capturing.goes.here')?我知道我可以通过做到这一点finditer,但我不想重复。


问题答案:

findall 只是返回捕获的组:

>>> re.findall('abc(de)fg(123)', 'abcdefg123 and again abcdefg123')
[('de', '123'), ('de', '123')]

相关文档摘录:

返回字符串中模式的所有非重叠匹配项,作为字符串列表。从左到右扫描字符串,并以找到的顺序返回匹配项。如果模式中存在一个或多个组,则返回一个组列表;否则,返回一个列表。如果模式包含多个组,则这将是一个元组列表。空匹配项将包括在结果中,除非它们碰到另一个匹配项的开头。