Regex для соответствия HTML самозакрывающихся тегов (используя PHP) - PullRequest
0 голосов
/ 01 мая 2020

Я успешно использовал это регулярное выражение для сопоставления и удаления самозакрывающихся тегов u, b, i и em (<b/>, <i/>, ...):

$text = preg_replace('#<(u|b|i|em)(\s[^/>]*)?/>#', '', $text);

Теперь у меня также есть удалить встроенные самозакрывающиеся теги HTML <a/> в строке, содержимое которых sla sh / символов в значении атрибута href (пример: <a href="https://www.example.com/en-us/cinema" target="_blank" type="[object Object]"/>). Поэтому я не могу просто добавить |a в свой список регулярных выражений.

Чтобы не добавлять вторую строку preg_replace для соответствия самозакрывающимся тегам a, как я могу изменить существующее регулярное выражение? Спасибо за любые подсказки

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Это будет сделано:

$text = preg_replace('#<(u|b|i|em|a)(\s[^>]*)?/>#', '', $text);
0 голосов
/ 01 мая 2020

С [^/>]* вы отрицаете / или > как отдельные символы. Отмените последовательность с помощью

$text = preg_replace('#<(a|u|b|i|em)(\s(?:(?!/>)[^>])*)?/>#', '', $text);

См. proof .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...