Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 preg_match函数从字符串中获取电话号码_Php_Preg Match_Str Replace - Fatal编程技术网

PHP preg_match函数从字符串中获取电话号码

PHP preg_match函数从字符串中获取电话号码,php,preg-match,str-replace,Php,Preg Match,Str Replace,这是我的PHP代码。我需要一个正则表达式来获得所需的输出 $str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy'; 预期输出:631741-4498 $str = 'abc:123,phoneNumber:+123 423, fdsfdsf, hgjhtg,juiy'; 预期输出:+123 423 $str = 'abc:123,phoneNumber:+(123) 423-727, fdsfdsf, hgjhtg,ju

这是我的PHP代码。我需要一个正则表达式来获得所需的输出

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
预期输出:
631741-4498

$str = 'abc:123,phoneNumber:+123 423, fdsfdsf, hgjhtg,juiy';
预期输出:+123 423

$str = 'abc:123,phoneNumber:+(123) 423-727, fdsfdsf, hgjhtg,juiy';
预期输出:+(123)423-727

这是我试过的

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
$str = str_replace(" ","",$str);
preg_match('/phoneNumber:\s*(.*)/', $str, $matches);

将正则表达式更改为
/(\d+\d+\-\d+/


您好,我想要电话号码和第一个逗号之间的字符串。中间的字符串每次都会更改。它可能+1234或任何其他。请编辑您的问题并提供所有可能的字符串字符集。您能正确编辑问题吗。所以任何人想要它都可以很容易得到。谢谢。当然可以@RoshanDandgavhal
<?php

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
preg_match('/(\d+ \d+\-\d+)/', $str, $matches);

print_r($matches[0]);
<?php

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
preg_match('/phoneNumber:[a-zA-Z0-9\ \+\-(\(\))]+/', $str, $matches);

print_r( str_replace("phoneNumber:", "", $matches[0]) );