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