添加re.finditer结果

8vi*_*ius 1 python regex

反正有没有像使用findall那样添加不同发现者的结果?例如:

matches = re.finditer(pattern_1, text) + re.finditer(pattern_2, text)
Run Code Online (Sandbox Code Playgroud)

我有几种不同的模式和结果,我想将它们作为单个块而不是单独进行迭代.

Ste*_*ima 5

你可以用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答案的输入.