m=re.compile('<div id="test">(.*?)<div id="test">', re.DOTALL).search(str(soup))
在这种情况下,soup是XML / HTML的BeautifulSoup对象,包含多次出现的标记。我写的片段为我提供了比赛,但不是我想要的。正则表达式查找提供的标签之间的所有文本,但我也想为每个标签获取此文本,因此发生重叠。 很难解释,但我将在下面举一个简短的例子:
<div id="test">
text
</div>
<div id="test">
more text
</div>
<div id="test">
even more text
</div>
<div id="test">..........
我的正则表达式的输出应该是: [&#39; text&lt; / div&gt;&#39;,&#39;更多文字&lt; / DIV&GT; &#39;,&#39;更多文字&lt; / DIV&GT;&#39;]
使用错误的正则表达式代码运行的输出仅为: &#39; text&lt; / div&gt;&#39;,因为它只会在开始和结束的正则表达式输入上迭代一次。