给出以下示例代码:
bla bla
<div class="a">
<div class="b">beta</div>
bla bla bla
<div class="c">charlie</div>
<b>bold</b>
etc ...
</div>
如何提取标记<div class="a">
的内容。请注意,父标记内嵌有未知数量的类似标记。一个简单的正则表达式:
<div class="a">(.*?)</div>
不起作用,因为它会返回:
<div class="b">beta
而不是标签的实际内容。
正则表达式应该以某种方式计算开始和结束div标签的数量,以确定停止的位置。我不确定这在正则表达式中是否可行,因此我的问题。
更新:我的问题不在于如何通过正则表达式提取标签数据。我的问题是如何确保提取所有标记内容(如html解析器)。
答案 0 :(得分:1)
如果没有一些扩展名,则无法使用普通正则表达式完全解析html。
Using regular expressions to parse HTML: why not?
话虽如此,你可以自己解析html或使用像jSoup这样的东西。