-1

我知道,我知道...正则表达式不是提取 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.";

我究竟做错了什么?我的文字最终出现在另一座城堡中。

*编辑:哦……没关系,我找到了可读性的代码

4

1 回答 1

0

您正在匹配class="body"您的文档class=body:您缺少引号。使用"/<div class=\"?body\"?>(.*?)<\/div>/sui".

于 2010-05-12T12:10:12.837 回答