Python正则表达式获取标记内容而不是标记名称

时间:2016-12-15 11:15:23

标签: python html regex tags

我遇到以下问题:我有一些HTML代码,我需要获取标记内容。我不想使用数百万个子字符串或类似的东西。我想使用正则表达式,但我遇到过使用类,ID,...或没有任何东西过滤标签的问题。这是我的正则表达式:

match = re.search('(?<=<span(.+)?>)(.*)(?=</span>)', '<span class="red">color</span>')

Python抛出以下错误

sre_constants.error: look-behind requires fixed-width pattern

我想从

获取内容
<span class="red">color</span>

<span>color</span>

感谢大家的帮助!

1 个答案:

答案 0 :(得分:1)

简单的答案:使用findall,跳过后视并获取捕获组。

<span(.+)?>(.*?)</span>

但在很多情况下,失败。例如。嵌套标签,包含文本&lt; / span&gt; 的字符串,依此类推......