如何在PHP中使用Regex提取HTML内容

时间:2010-05-12 12:06:51

标签: php html regex extract html-content-extraction

我知道,我知道......正则表达式不是提取HTML文本的最佳方式。但我需要从很多页面中提取文章文本,我可以在每个网站的数据库中存储正则表达式。我不确定XML解析器如何与多个网站一起使用。每个网站都需要一个单独的功能。

无论如何,我对正则表达不太了解,所以请耐心等待。

我的HTML页面格式与此类似

<html>
<head>...</head>
<body>
    <div class=nav>...</div><p id="someshit" />
    <div class=body>....</div>
    <div class=footer>...</div>
</body>

我需要提取body类容器的内容。

我试过了。

$pattern = "/<div class=\"body\">\(.*?\)<\/div>/sui"
$text = $htmlPageAsIs;
if (preg_match($pattern, $text, $matches))
    echo "MATCHED!";
else
    echo "Sorry gambooka, but your text is in another castle.";

我做错了什么?我的文字最后出现在另一座城堡里。

*编辑:哦......没关系,我找到了readability's code

1 个答案:

答案 0 :(得分:0)

您的class="body"您的文档已匹配class=body:您错过了引号。使用"/<div class=\"?body\"?>(.*?)<\/div>/sui"