反正有没有像使用findall那样添加不同发现者的结果?例如:
matches = re.finditer(pattern_1, text) + re.finditer(pattern_2, text)
Run Code Online (Sandbox Code Playgroud)
我有几种不同的模式和结果,我想将它们作为单个块而不是单独进行迭代.
你可以用itertools.chain.from_iterable.
from itertools import chain
patterns = [] # All patterns go here
for match in chain.from_iterable(re.finditer(pattern, text) for pattern in patterns):
print match
Run Code Online (Sandbox Code Playgroud)
这产生了
<_sre.SRE_Match object at 0x021544B8>
<_sre.SRE_Match object at 0x021544F0>
<_sre.SRE_Match object at 0x021544B8>
<_sre.SRE_Match object at 0x021544F0>
<_sre.SRE_Match object at 0x021544B8>
Run Code Online (Sandbox Code Playgroud)
使用equem答案的输入.