regex — удаление пользовательских тегов для страницы AMP в html-строке с помощью переполнения стека

Я не так хорош в написании регулярных выражений, поэтому прошу помощи.

У меня есть строка HTML моей страницы. Я хочу преобразовать HTML-строку в Google AMP-совместимую страницу.
В котором я хочу заменить некоторые пользовательские теги HTML.

<define:dos> This string explains DOS.</define:dos>

И вывод должен быть только This string explains DOS.

В моей HTML-строке есть несколько строк, начинающихся с <define: Я пытался удалить их, написав отдельный preg_replace для каждого тега, который работает как ожидалось:

$html = preg_replace('#<define:wlan>#i', '', $html);
$html = preg_replace('#<define:wifi>#i', '', $html);
$html = preg_replace('#<define:dos>#i', '', $html);

И так далее

Я попробовал что-то, как указано ниже, но не сработало 🙁

$html = preg_replace('#\<define[^\]>*\](.*?)\</define\>#m', "$1", $html);

Я хочу общее решение для этого. Пожалуйста помоги.

Заранее спасибо.

0

Решение

Ты можешь использовать

<(define:[^>]+>)(.*?)<\/\1

и заменить второй захваченной группой, \2,

https://regex101.com/r/wZQBuM/2

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]