使用正则表达式或其他方法从html中提取文本

时间:2011-08-17 15:31:43

标签: php regex html-parsing

我正在尝试使用正则表达式从以下html中提取文本“abcdef”:

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

我正在尝试这种模式

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

如果有人帮我弄清楚这种模式会很有帮助。我正在使用PHP。

感谢

1 个答案:

答案 0 :(得分:3)

请改用DOMDocument。具体而言,DOMDocument::loadHTML。你的生活会更容易。

可以使用如下的模式,但我真的不建议使用正则表达式来操纵HTML:

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

我还注意到,在正则表达式中,您有rel='bookmark',而原始字符串有rel="bookmark"。这可能是你的原始正则表达式无效的原因。