小编Dav*_*ave的帖子

嵌套标签的正则表达式(最里面更容易)

我对此进行了相当多的研究,但找不到如何将嵌套 html 标签属性相匹配的工作示例。我知道可以匹配没有属性的平衡/嵌套最内层标签(例如,and 的正则表达式为 #<div\b[^>]*>(?:(?> [^<]+ ) |<(?!div\b[^>]*>))*?</div>#x)。

但是,我希望看到一个正则表达式模式,它可以找到带有属性的 html 标签对。

示例:它基本上应该匹配

<div class="aaa"> **<div class="aaa">** <div> <div> </div> **</div>** </div>
Run Code Online (Sandbox Code Playgroud)

并不是

<div class="aaa"> **<div class="aaa">** <div> <div> **</div>** </div> </div>
Run Code Online (Sandbox Code Playgroud)

有人有一些想法吗?

出于测试目的,我们可以使用: http: //www.lumadis.be/regex/test_regex.php


附言。Steven在他的博客中提到了一个解决方案(实际上是在评论中),但它不起作用

http://blog.stevenlevithan.com/archives/match-innermost-html-element

$regex = '/<div\b[^>]+?\bid\s*=\s*"MyID"[^>]*>(?:((?:[^<]++|<(?!\/?div\b[^>]*>))+)|(<div\b[^>]*>(?>(?1)|(?2))*<\/div>))?<\/div>/i';
Run Code Online (Sandbox Code Playgroud)

html regex tags nested

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

html ×1

nested ×1

regex ×1

tags ×1