我想查看我的字符串中的所有电话号码.现在它在数组’匹配’中只有一个数字我怎么能得到我的数组中的所有数字?
$str = "djvdsfhis 0647382938 rdfrgfdg tel:0647382938 rfgdfgfd 06 47 38 29
38 fdgdfrggfd tel:06-47382938 cxgvfdgsfdc";
$arr = '~\d{2}-\d{8}|\d{10}~';
$success = preg_match($arr, $str, $match);
if ($success) {
echo "Match: ".$match[0]."
";
print_r($match);
}
我得到这个作为输出:
djvdsfhis ffgfg 0647382938 rdfrgfdg tel:0647382938 rfgdfgfd 06 47 38 29 38 fdgdfrggfd tel:06-47382938 cxgvfdgsfdc
Match: 0647382938
Array ( [0] => 0647382938 )
但我想让我的数组像这样:
Array ( [0] => 0647382938 [1] => 0647382938 [2] => 06-47382938
解决方法:
你应该使用preg_match_all.这将输出你的正则表达式的所有结果的数组,在这个例子中是一个数组的数组.
$str = "djvdsfhis 0647382938 rdfrgfdg tel:0647382938 rfgdfgfd 06 47 38 29
38 fdgdfrggfd tel:06-47382938 cxgvfdgsfdc";
$arr = '~\d{2}-\d{8}|\d{10}~';
$success = preg_match_all($arr, $str, $match);
if ($success) {
print_r($match);
}
在这里测试一下:
标签:php,regex
来源: https://codeday.me/bug/20190726/1548886.html