Выражение PHP Regex на всех iframes без строки в src

Как я могу получить все iframes без comments_embed в src для использования в preg_replace через regex

Текущий HTML

<iframe src="https://www.youtube.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FMumsVillage%2Fvideos%2F881603451988373%2F&amp;show_text=0&amp;width=560" frameborder="0" allowfullscreen="" width="560" height="315" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen"></iframe>

<iframe src="https://www.facebook.com/plugins/comment_embed.php?href=https%3A%2F%2Fwww.facebook.com%2FMumsVillage%2Fvideos%2F881603451988373%2F%3Fcomment_id%3D881663971982321&amp;include_parent=false" frameborder="0" allowfullscreen="" width="560" height="161" frameborder="0" scrolling="no"></iframe>

<iframe src="https://www.facebook.com/plugins/comment_embed.php?href=https%3A%2F%2Fwww.facebook.com%2FMumsVillage%2Fvideos%2F881603451988373%2F%3Fcomment_id%3D881633751985343&amp;include_parent=false" frameborder="0" allowfullscreen="" width="560" height="141" frameborder="0" scrolling="no"></iframe>

<iframe src="https://www.youtube.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FMumsVillage%2Fvideos%2F881603451988373%2F&amp;show_text=0&amp;width=560" frameborder="0" allowfullscreen="" width="560" height="315" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen"></iframe>

Текущее регулярное выражение

    <iframe[^>]+src="(?!(?:.+ )?comment_embed(?: .+)?")([^"]+)"/isg

1

Решение

Попробуйте это регулярное выражение:

<iframe ((?!comment_embed).)*?<\/iframe>

Я думаю, что отрицательный взгляд, который вы хотите использовать, просто ?!comment_embed, Мы можем использовать этот взгляд, чтобы умерить точку, как в ((?!comment_embed).)*, Таким образом, шаблон просто говорит, чтобы соответствовать любому персонажу, но на каждом этапе пути смотрите вперед и убедитесь, что мы не видим comment_embed в любом месте. Следовательно, этот подход должен быть устойчивым к comment_embed появляется в любом месте src URL.

В качестве отказа от ответственности, как правило, вы не должны использовать обычное регулярное выражение для анализа содержимого HTML. Возможно, если вы просто хотите извлечь эти изолированные теги верхнего уровня, это работает, но парсер будет лучше.

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector