我正在寻找一个在任何html字符串中找到所有空锚标签的正则表达式。 “空”表示本身或其任何子节点中没有文本节点。
例如,应该找到这些:
<p>abc<a href="http://foo.com"></a>def</p>
<p>abc<a href="http://foo.com"><span></span></a>def</p>
<p>abc<a href="http://foo.com"><span><b></b></span></a>def</p>
而这些不是:
<p>abc<a href="http://foo.com">Some text</a>def</p>
<p>abc<a href="http://foo.com"><span></span></a>def</p>
<p>abc<a href="http://foo.com">Some<span><b>Text</b></span></a>def</p>
正则表达式应该与POSIX兼容(我需要它用于MySQL)。
为什么呢?
我需要它来删除mysql表列(使用纯MySQL)中的空锚和一个帮助自定义regex_replace函数,老实说,我不知道更好的方法来实现这一点。 MySQL UpdateXML
不能同时用于多个匹配。
答案 0 :(得分:0)
这将有效:
/<a href=.*?><\/a>/
答案 1 :(得分:0)
尝试使用此模式,它适用于您的情况
<[^/>]+>[ \n\r\t]*</[^>]+>
答案 2 :(得分:-1)
答案是:不要这样做。 Parsing HTML with regex is bad,而是使用PHPs SimpleXML类的组合来浏览DOM树。