我正在尝试使用正则表达式和pregmatch从网站上删除10位数字。到目前为止还没有得到任何结果。当我使用常规字符时,它匹配前两个注释掉的$ regex变量。但是当我像其他人一样使用正则表达式时。
我在这里检查了所有其他类似的问题。然而,还没有能够理解为什么以下正则表达式脚本输出像
这样的空数组array(1){[0] => array(0){}}
CODE
<?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];
?>
如果你观察到,我一直在尝试各种正则表达式组合而没有给出结果。
答案 0 :(得分:1)
请注意,此表达式:/^[0-9]{5}$/
将匹配完全由5位数组成的字符串。 ^
和$
指示引擎从头开始匹配并一直持续到结束。这与/9833157945/
的表达式不同,后者表示特定的10位数字。
您需要将其至少更改为\d{10}
以匹配10位数。如果数字不能包含在其他字符串中,即foo0123456789
,则可以使用\b
代码:\b\d{10}\b
。
答案 1 :(得分:0)
'/ [0-9] \ d {10} /'解决了我的问题!它现在匹配所有10位数字!
谢谢大家。