用于提取电话号码的php正则表达式

用于提取电话号码的php正则表达式,php,Php,我需要php正则表达式的帮助。 我有一个$text变量。 例如:“foo-foo随机词来电电话:+922432202229随机词foo-words” 我想从$text中提取922432202229。 请注意,$text也可能包含其他类似的号码,所以我只想要“Caller Phone:” 以下是我尝试过的: $matches = array(); preg_match_all("/Caller Phone : +[0-9]{12}$/", $text, $matches);

我需要php正则表达式的帮助。 我有一个$text变量。 例如:“foo-foo随机词来电电话:+922432202229随机词foo-words” 我想从$text中提取922432202229。 请注意,$text也可能包含其他类似的号码,所以我只想要“Caller Phone:” 以下是我尝试过的:

    $matches = array();
    preg_match_all("/Caller Phone : +[0-9]{12}$/", $text, $matches);
    $matches = $matches[0];

这应该更加灵活和安全:

$matches = array();
preg_match_all('/Caller Phone\s*:\s*\(+|)([0-9]{8,12})/i', $text, $matches);
$phones = $matches[2];

您需要使用
()
收集
电话:
后面的实际值,如下所示:

preg_match_all(“/Caller Phone:([0-9]+)$/”,$text,$matches)

我还将
{12}
更改为
+
,这样您也可以拥有所有数字,只要它继续。之后必须进行验证

只有使用
()
才能将值返回到
$matches
变量。

您可以使用此代码

    $matches = array();
    preg_match_all("/Caller Phone:\+\d{12}/i", $text, $matches);
    $matches = $matches[0];
如果在
$text
变量中有此数据

$text=“foo-foo随机词来电电话:+922432202229随机词foo-words”

它将在您给定的数据上显示此结果

Array
(
    [0] => Array
    (
        [0] => Caller Phone:+922432202229
    )

)

是“呼叫者电话:”还是“呼叫者电话”?(也就是说,冒号前面有空格吗?)加号(
+
)是否一定会出现?这很有效!有没有办法只知道号码?我的意思是,我收到的是“来电电话:922432202229”,我只想要这个“922432202229”。请看我的编辑,这应该可以做到,使用
$matches[1]
,另外:您确定您的电话号码总是12个,并且前面有一个
+
?因为这些是唯一能像这样匹配的。我没想过,对于数字在8到12之间的数字,有没有像{12或8}之类的东西?我编辑了我的文章,使用
$matches[2]
现在,加号是可选的,数字必须是8到12位