【发布时间】:2015-12-30 10:31:52
【问题描述】:
我正在尝试使用正则表达式和预匹配从网站上抓取 10 位数字。到目前为止还没有得到任何结果。当我使用前两个注释掉的 $regex 变量中的常规字符时,它匹配。但不是当我像其他人一样使用正则表达式时。
我在这里检查了所有其他类似的问题。然而一直无法理解为什么下面的正则表达式脚本输出空数组,如
数组(1) { [0]=> 数组(0) { } }
代码
<?php
$data=file_get_contents("http://www.landshoppe.com/contactus");
//$regex = '/9833157945/';
//$regex = "/<a href='(.+?)'>/";
$regex='/^[0-9]\b\d{10}\b$/';
//$regex='/\(?\s?[2-9][0-9]{2}[(\s?\)?\s?)\-\.]{1,3}[0-9]{3}[\s\-\.]{1,3}[0-9]{10}/';
//$regex='/\[^\d\]/';
preg_match_all($regex,$data,$match);
//preg_match_all($regex,"9898989898 kmllkj 9087654567 kjhkhkhj 9043567898 hkhkjhkjhk",$match);
// var_dump($data);
// echo htmlspecialchars($data);
var_dump($match);
echo "<p></p>";
foreach($match as $m){foreach($m as $ma){echo $ma."<br>";}}
//echo $match[1];
?>
如果您观察到,我一直在尝试各种正则表达式组合,但都没有给出结果。
【问题讨论】:
标签: php regex preg-match match preg-match-all