Skip to main content
 首页 » 编程设计

python之添加 re.finditer 结果

2025年05月04日8zhoujg

有没有办法像使用 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 答案的输入。