Регулярное выражение для поиска пустых тегов привязки - PullRequest
0 голосов
/ 15 сентября 2011

Я ищу регулярное выражение, которое находит все пустые теги привязки в любой 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, и, честно говоря, я не знаю лучшего способа добиться этого. MySQLs UpdateXML не работает для нескольких совпадений одновременно.

Ответы [ 3 ]

0 голосов
/ 30 марта 2013

Попробуйте использовать этот шаблон, он работает в вашем состоянии

0 голосов
/ 02 апреля 2013

Ответ таков: не делать этого. Разбор HTML с помощью регулярных выражений - это плохо , вместо этого я использую комбинацию PHPs SimpleXML класса для навигации по дереву DOM.

0 голосов
/ 15 сентября 2011

Это будет работать:

/<a href=.*?><\/a>/
...