Python正则表达式:获取所有组的序列

vp_*_*rth 5 python regex

我有一个这样的正则表达式'^(a|ab|1|2)+$',想要获得所有的序列...

例如对于re.search(reg,'ab1')我想得到('ab','1')

我可以通过'^(a|ab|1|2)(a|ab|1|2)$'模式获得等效的结果,但我不知道有多少块与(模式)+相匹配

这可能吗?如果可以,怎么办?

ebe*_*ack 3

您的原始表达式确实按照您想要的方式匹配,它只匹配整个字符串,并且不会捕获每个单独匹配的各个组。使用重复运算符(“+”、“*”、“{m,n}”),该组每次都会被覆盖,并且仅保存最终匹配项。文档中提到了这一点:

如果一个组匹配多次,则只能访问最后一次匹配。