有没有办法像使用 findall 那样将不同 finditer 的结果相加?例如:
matches = re.finditer(pattern_1, text) + re.finditer(pattern_2, text)
我有几个不同的模式和结果,我想将它们作为一个 block 而不是单独地迭代。
请您参考如下方法:
您可以使用 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
这产生
<_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>
使用来自 equem 答案的输入。
