Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在preg_match()中为此使用什么正则表达式?_Php_Regex_Parsing_Html Parsing_Preg Match - Fatal编程技术网

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

Php 在preg_match()中为此使用什么正则表达式?,php,regex,parsing,html-parsing,preg-match,Php,Regex,Parsing,Html Parsing,Preg Match,我对正则表达式不是很熟悉,我真的需要你的帮助 我正在解析一个站点的源代码,我感兴趣的信息(我们称之为XXXX)由以下代码包围: Number of people </p> <p style="font-size: 150%;"> <b>XXXX</b> 人数 XXXX 注意:我直接从源代码中复制了这一点,因此您可以看到缩进和所有内容(如果这很重要的话)

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

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

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

XXXX

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

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

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

(.+?)~;


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

~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[^<]+~

~Number of people\s*

\s*

\s*\K[^谢谢Casimir,但是当我使用这两个正则表达式中的任何一个时,我会遇到这个错误:“PHP解析错误:语法错误,意外的T\U变量”不要使用正则表达式来解析HTML。你无法用正则表达式可靠地解析HTML,你将面临悲伤和挫折。一旦HTML偏离你的预期,你的代码将被破坏。有关如何使用已编写、测试和调试的PHP模块正确解析HTML的示例,请参阅格德。