php-在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>~';
解决方法:
您已经忘记了图案中的所有白色字符(空格,制表符,换行符):
~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. (您没有提供足够的源代码作为示例)
标签:preg-match,html-parsing,parsing,php,regex 来源: https://codeday.me/bug/20191123/2065747.html