извлечь текст из HTML с помощью регулярных выражений или другим методом - PullRequest
0 голосов
/ 17 августа 2011

Я пытаюсь извлечь текст "abcdef" из следующего HTML-кода с помощью регулярных выражений:

<a href="xyz.com" rel="bookmark" title="hello_world">abc def</a>

я пытаюсь этот шаблон

$pattern = "<a href=(.*?) rel='bookmark' title=(.*?)>(.*?)</a>"

было бы полезно, если бы кто-нибудь помог мне выяснить закономерность. Я использую PHP.

спасибо

1 Ответ

3 голосов
/ 17 августа 2011

Используйте взамен DOMDocument.В частности, DOMDocument::loadHTML.Ваша жизнь станет намного проще.

Вы могли бы использовать шаблон, подобный следующему, но я действительно не рекомендую использовать регулярные выражения для манипулирования HTML:

/<a\s+href\s*=\s*"([^"]+)"\s+rel\s*=\s*"([^"]+)"\s+title\s*=\s*"([^"]+)"\s*>([^<]+)<\/a>/

Я также заметил, что в вашем регулярном выражении есть rel='bookmark', тогда как в исходной строке rel="bookmark".Возможно, именно поэтому ваше оригинальное регулярное выражение не работает.

...