Products
GG网络技术分享 2025-03-18 16:15 2
i want to see all phone numbers in my string. right now it has only one number in the array \'match\' how can i get all the numbers in my array?
$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].\"<br />\";
print_r($match);
}
i get this as output:
djvdsfhis ffgfg 0647382938 rdfrgfdg tel:0647382938 rfgdfgfd 06 47 38 29 38 fdgdfrggfd tel:06-47382938 cxgvfdgsfdcMatch: 0647382938
Array ( [0] => 0647382938 )
but i want to have my array like this:
Array ( [0] => 0647382938 [1] => 0647382938 [2] => 06-47382938
You should use preg_match_all
. Which will output an array of all of the results of your regex, in this instance an array of the numbers.
$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);
}
Test it here :
http://sandbox.onlinephpfunctions.com/code/350d10b1be46ce3a5851d7671750bac28f9110f0
You can also use T-Regx tool which has automatic delimiters:
pattern(\'\\d{2}-?\\d{8}\')->match($str)->all();
转载请注明原文出处:https://www.obatis.com/article/2020102010315350032164324759
Demand feedback