使用Python正则表达式解析div标签

1 投票
3 回答
2678 浏览
提问于 2025-04-15 14:56

这是一个关于Python正则表达式的问题。

我想匹配一个div块,像这样:

<div class="leftTail"><ul class="hotnews">any news stuff</ul></div>

我在想一个这样的模式:

p = re.compile(r'<div\s+class=\"leftTail\">[^(div)]+</div>')

但似乎没有正常工作。

还有另一个模式:

p = re.compile(r'<div\s+class=\"leftTail\">[\W|\w]+</div>')

结果比我想的要多得多,它把文件中最后一个标签之前的所有内容都抓取了。

谢谢大家的帮助!

3 个回答

4

不要用正则表达式来解析XML或HTML。对于嵌套的div,你永远都无法让它正确工作。

5

试试这个:

p = re.compile(r'<div\s+class=\"leftTail\">.*?</div>')
12

你可能想要考虑使用一个真正的HTML解析器。我建议你试试Beautiful Soup。因为HTML的格式有很多种奇怪的写法,即使你写的正则表达式没问题,它们也可能并不总是能正确工作。

撰写回答