Skip to main content
 首页 » 编程设计

python之使用正则表达式在同一行中查找多个匹配项

2025年05月04日26insus

我需要构建一个可以读取多行代码并从每一行中提取正确信息的程序。 示例文本:

no matches 
one match <'found'> 
<'one'> match <found> 
<'three'><'matches'><'found'> 

对于这种情况,程序应该检测到 <'found'> , <'one'> , <'three'> , <'matches'>和 <'found'>作为匹配项,因为它们都有“<”和“'”。 但是,我无法制定一个使用正则表达式来解释同一行上的多个匹配项的系统。我正在使用类似的东西:

re.search('^<.*>$') 

但如果一行中有多个匹配项,则额外的“'<”和“>'”将作为.*的一部分,而不将它们计为单独的匹配项。我该如何解决这个问题?

请您参考如下方法:

这行得通 -

>>> r = re.compile(r"\<\'.*?\'\>") 
>>> r.findall(s) 
["<'found'>", "<'one'>", "<'three'>", "<'matches'>", "<'found'>"]