使用preg_match正则表达式PHP解析HTML

时间:2012-04-12 14:13:19

标签: php html regex parsing preg-match

我想解析某个谷歌搜索包含的点击量并将其存储在PHP变量中。

示例:

http://www.google.co.uk/search?as_epq=hello

返回一个页面,其中包含搜索栏下​​的“约1,830,000,000个结果”。

我想要的只是1830000000位。

我很确定我使用preg match但是在reg表达式上完全没用,从来没有能够理解它。

我来的壁橱是:

$adamHTML = file_get_contents('http://www.google.co.uk/search?as_epq=hello');

preg_match('/About/', $adamHTML, $return);

print_r($return);

这给了我'关于'的所有实例。但我怎么抓住这个数字?

感谢您的帮助......

3 个答案:

答案 0 :(得分:2)

这很糟糕,非常糟糕。但你可以使用它。

preg_match('/About ([0-9,]+) results/', $adamHTML, $return);

答案 1 :(得分:1)

试试这个

<?php
$adamHTML = file_get_contents('http://www.google.co.uk/search?as_epq=hello&hl=en');
preg_match('/About (.*) results/', $adamHTML, $return);
print $return[1];
?>

答案 2 :(得分:1)

您可以使用带占位符的正则表达式“提取”(而非“解析”)内容,而不仅仅是固定字符串。数字的占位符为\d+,您还需要逗号等:

preg_match('/About ([\d,]+) results/', strip_tags($adamHTML), $return);

另请参阅Open source RegexBuddy alternativesOnline regex testing以获取一些有用的工具,或RegExp.info获取更好的教程。