Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式将带有电话号码的字符串拆分为数组中的几个元素_Php_Regex_Phone Number_Digits - Fatal编程技术网

php正则表达式将带有电话号码的字符串拆分为数组中的几个元素

php正则表达式将带有电话号码的字符串拆分为数组中的几个元素,php,regex,phone-number,digits,Php,Regex,Phone Number,Digits,如何将带有电话号码的字符串拆分为数组中的几个元素 例如,我们有如下字符串: “电话”=>“+7(343)228-02-08+7(343)203-209-3”或“电话”=>“8(800)555-92-86 8(499)322-16-408(812)426-10-38” 但我们需要做到: "phone" => [ "0" => "+7 (343) 228-02-08", "1" => "+7 (343) 203-209-3", ] 另外呢 "phone" =&

如何将带有电话号码的字符串拆分为数组中的几个元素

例如,我们有如下字符串:
“电话”=>“+7(343)228-02-08+7(343)203-209-3”
“电话”=>“8(800)555-92-86 8(499)322-16-408(812)426-10-38”

但我们需要做到:

"phone" => [
     "0" => "+7 (343) 228-02-08",
     "1" => "+7 (343) 203-209-3",
]
另外呢

"phone" => [
    "0" => "8 (800) 555-92-86 8",
    "1" => "8 (499) 322-16-40",
    "2" => "8 (812) 426-10-38",
]

我试图找到一些现成的解决办法,但什么也找不到。正则表达式-对我来说太复杂了…

您可以使用以下正则表达式使用
preg\u match\u all
函数进行匹配,而不是
split

/\+?\d\h*\(\d{3}\)\h*[\d-]+/

您可以使用以下正则表达式使用
preg\u match\u all
函数进行匹配,而不是
split

/\+?\d\h*\(\d{3}\)\h*[\d-]+/

您是否有一个模式,可以将其分解为电话号码?您输入的其他可能的电话号码字符串是什么?@anubhava,就像我写的那样。感谢您的回复!试着测试你的模式。另外,一门关于regex的课程也不是个坏主意,你迟早会以开发者的身份使用它们,免费课程@sietse85是的,我订购了这本书。你有没有一个模式,可以将它分解为电话号码?你输入的其他可能的电话号码字符串是什么?@anubhava,就像我写的那样。感谢您的回复!试着测试你的模式。另外,关于regex的课程也不是个坏主意,你迟早会以开发者的身份使用它们,免费课程@sietse85是的,我订购了这本书。非常感谢!你帮了我很多!我保证我会学习正则表达式。非常感谢!你帮了我很多!我保证我会学习正则表达式。