weranda
@weranda

Как регуляркой найти тег с нужным содержимым?

Приветствую.
Есть строка:
<blockquote>111</blockquote><p>222</p><blockquote><p>333: <a href="444">h555</a></p></blockquote>

Внутри нее два блока цитат. Как найти именно второй, тот который с ссылкой внутри?

Пробовал так:
<blockquote>.*?(href).*?</blockquote>
Но выделяет сразу две цитаты.
  • Вопрос задан
  • 128 просмотров
Решения вопроса 2
@dodo512
<blockquote>(?:(?!</blockquote>).)*?href.*?</blockquote>


Или XPath: //blockquote[.//a]
Ответ написан
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
~<(blockquote)>(?:(?!<\1>).)+?<a[^>]*>.*?</\1>~
См. демо
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
<blockquote>.*?<\/blockquote>
и выцепляете средствами инструмента по работе с регулярками вашего ЯП второй match.
хотя, наверное, это больше подойдёт:
<blockquote>[^(blockquote)]*href.*?<\/blockquote>
Ответ написан
Ваш ответ на вопрос

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

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