如何使用正则表达式捕获实际的html标记内容

时间:2017-05-17 09:23:57

标签: regex coldfusion coldfusion-9

给出以下示例代码:

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解析器)。

1 个答案:

答案 0 :(得分:1)

如果没有一些扩展名,则无法使用普通正则表达式完全解析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