如何使用正则表达式捕获实际的 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 之类的东西。

https://www.bennadel.com/blog/2358-parsing-traversing-and-mutating-html-with-coldfusion-and-jsoup.htm