0

在尝试使用 php 和 preg* 函数进行一些 html 抓取之前,我曾多次遇到过这个问题。

大多数时候我必须捕捉这样的结构:

<!-- comment -->
<tag1>lorem ipsum</tag>

<p>just more text with several html tags in it, sometimes CDATA encapsulated…&lt;/p>
<!-- /comment -->

特别是我想要这样的东西:

/<tag1>(.*?)<\/tag1>\n\n<p>(.*?)<\/p>/mi

\n\n看起来不起作用。

有通用的断线开关吗?

4

3 回答 3

3

我认为你可以\n\n(\r?\n){2}这种方式替换它,CRLF而不是仅仅捕获LF字符。

于 2009-07-04T09:42:59.687 回答
1

您确定要使用 regexps 解析 HTML 吗?HTML 是不规则的,并且有太多的极端情况。

我会调查某种形式的 HTML 解析器(也许是这个?),然后通过返回的 HTML 数据结构识别您感兴趣的模式。

于 2009-07-04T09:44:15.940 回答
0

或者您可以查看php的Dom 扩展。它具有从字符串或文件加载 html 的功能。然后就可以使用php dom方法遍历dom,找到自己感兴趣的数据了。

于 2009-07-04T10:13:12.763 回答