У меня возникли проблемы с сопоставлением строки с использованием REGEX (PHP).REGEX для соответствия строкам точно
У нас есть этот код:
<p style="text-align: center; ">
<iframe height="360" src="http://example.com/videoembed/9338/" frameborder="0" width="640"></iframe></p>
У нас есть Regex:
/<p.*>.*<iframe.*><\/iframe><\/p>/is
Однако, это также соответствие всех тегов абзаца на строки - не только те, содержащие теги IFRAME. Как мы можем сопоставлять только теги P, содержащие IFRAME?
Мы также хотим, чтобы соответствовать этому коду, используя один и тот же Regex:
<p style="text-align: center;"><iframe allowfullscreen="" frameborder="0" height="360" src="http://example.com/videoembed/9718/" width="640"></iframe></p>
Обратите внимание, что нет разрывов строк и меньше пробелов (в P теге).
Как мы можем достичь этого? Я немного новичок в REGEX.
Благодарим за помощь.
Вы должны определенно * не * использование regex для этой задачи, а скорее синтаксический анализатор XML, такой как [XML Parser] (http://php.net/manual/en/book.xml.php) или [SimpleXML] (http: // php .net/manual/en/book.simplexml.php) или парсер HTML, такой как [реализация DOM] (http://php.net/manual/en/domdocument.loadhtml.php). – rid
это может не ответить на ваш вопрос, но может решить вашу проблему, чтобы остановить синтаксический анализ (x) html с помощью регулярного выражения. Вы можете взглянуть на это: http://php.net/manual/de/book.simplexml.php и http://stackoverflow.com/questions/1732348/regex-match-open-tags-except- xhtml-self-contains-tags –
Дальнейшее поощрение использования парсера HTML, а не регулярного выражения: ** [htmlparsing.com] (http://htmlparsing.com/) ** – funkwurm