在preg_match()中使用什么正则表达式?

时间:2013-06-06 16:13:02

标签: php regex parsing html-parsing preg-match

我对正则表达式并不熟悉,我真的需要你的帮助。

我正在解析网站的源代码,我感兴趣的信息(我们称之为XXXX)被以下代码包围:

                Number of people
        </p>
        <p style="font-size: 150%;">
            <b>XXXX</b>

注意:我直接从源代码中复制了这些内容,因此您可以看到缩进和所有内容(如果这很重要)。

我试过了,但是preg_match()返回0:

$regex = '~Number of people</p><p style="font-size: 150%;"><b>(.+?)</b>~';

1 个答案:

答案 0 :(得分:3)

您忘记了模式中的所有白色字符(空格,制表符,换行符):

~Number of people\s*</p>\s*<p style="font-size: 150%;">\s*<b>(.+?)</b>~

或更好

~Number of people\s*</p>\s*<p style="font-size: 150%;">\s*<b>\K[^<]+~

但请记住,解析HTML的好方法是使用DOM。 (您没有为示例提供足够的源代码)