如何使用正则表达式捕获实际的 html 标签内容
How to capture the actual html tag content using regex
给定以下示例代码:
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>
不起作用,因为它将 return:
<div class="b">beta
而不是标签的实际内容。
正则表达式应该以某种方式计算开始和结束 div 标记的数量以确定停止的位置。我不确定这在正则表达式中是否可行因此我的问题。
更新: 我的问题不是关于如何通过正则表达式提取标签数据。我的问题是如何确保提取所有标签内容(如 html 解析器)。
如果没有某些扩展,则无法使用普通正则表达式完全解析 html。
Using regular expressions to parse HTML: why not?
话虽如此,您可以自己解析 html 或使用 jSoup 之类的东西。
给定以下示例代码:
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>
不起作用,因为它将 return:
<div class="b">beta
而不是标签的实际内容。
正则表达式应该以某种方式计算开始和结束 div 标记的数量以确定停止的位置。我不确定这在正则表达式中是否可行因此我的问题。
更新: 我的问题不是关于如何通过正则表达式提取标签数据。我的问题是如何确保提取所有标签内容(如 html 解析器)。
如果没有某些扩展,则无法使用普通正则表达式完全解析 html。
Using regular expressions to parse HTML: why not?
话虽如此,您可以自己解析 html 或使用 jSoup 之类的东西。