Удалите пользовательские теги для страницы AMP в HTML-строке, используя PHP - PullRequest
0 голосов
/ 10 сентября 2018

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

У меня есть 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);

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

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

1 Ответ

0 голосов
/ 10 сентября 2018

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

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

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

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

...