使用Python正则表达式解析div标签
这是一个关于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的格式有很多种奇怪的写法,即使你写的正则表达式没问题,它们也可能并不总是能正确工作。