@Evdokim001
PHP & WordPress developer

Почему не работает REGEX выражение?

У меня есть 2 выражения. Первое выражение выделяет последний абзац вместе с текстом, а второе должно брать только теги с содержимым. Так вот, второе не работает. Оно выбирает все абзацы, а не только последний.
<\!-- wp:paragraph -->\n\<p.*?\<\/p\>\n<!-- \/wp:paragraph -->(?![\<\!-- wp:paragraph -->\n\<p.*?\<\/p\>\n<!-- \/wp:paragraph -->])

\<p.*?\<\/p\>(?!\<p.*?\<\/p\>)

Помогите разобраться в чем проблема)

Текст содержит блоки, наподобие:
<!-- wp:paragraph -->
<p>Synonyms replace words like "<em>positive</em>" with another <a href="https://inkforall.com/copy-editing/synonyms/">word or phrase that means the same thing</a> but is more specific. It can be hard to find synonyms for "positive" because so many words can be used instead.</p>
<!-- /wp:paragraph -->
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@dodo512
(?!<p.*?</p>) поменять на
(?!\s*<!-- /wp:paragraph -->\s*<!-- wp:paragraph -->)

https://regex101.com/r/LE9LAy/1

Или так preg_match('#^.*\K<p.*?</p>#s', $str, $match);
https://regex101.com/r/LE9LAy/2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы