【发布时间】:2015-07-22 23:25:35
【问题描述】:
我想选择所有独立的空标签都是嵌套的,而不是其他标签。例如,正则表达式应该匹配这个:
<p></p>
<p><strong><em></em></strong></p>
<p style="background: black;"><span></span></p>
但不是这个:
<p>text</p>
<p><strong><em>text</em></strong></p>
<p style="background: black;"><span>text</span></p>
在像<p><span style="background-color: red;"></span>some text &nbsp;</p> 这样棘手的情况下,它应该匹配<span style="background-color: red;"></span>。
这是我目前使用的:<[^<p>\/>][^>]*><\/[^>]+> 但是,它忽略了诸如<p><strong><em></em></strong></p> 之类的情况,其中有多个嵌套标签。
谢谢!
【问题讨论】:
-
是正则表达式是一个要求还是你认为这是唯一的方法,所以你没有考虑其他可能性?我觉得真正的 html 解析器会更好地找到空节点,可能涉及到一些递归。
标签: php html regex tags regex-negation