其他教程

其他教程

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 cxgvfdgsfdc

Match: 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();

Java正则表达式判断是否为手机号码(支持最新166、188、199号段)

转载请注明原文出处:https://www.obatis.com/article/2020102010315350032164324759

标签:

提交需求或反馈

Demand feedback