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

时间:2013-06-25 14:40:48

标签: php

我需要有关php正则表达式的帮助。 我有一个$ text变量。 例如:“ foo foo随机单词来电:+922432202229 随机单词foo words ” 我想从$ text中提取922432202229。 请注意,$ text也可以包含其他类似的数字,所以我只想要“来电:”之后的数字 这是我试过的:

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

3 个答案:

答案 0 :(得分:1)

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

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

我还将{12}更改为+,因此只要会继续,您也会拥有所有数字。之后必须验证。

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

答案 1 :(得分:0)

这应该更加灵活和安全:

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

答案 2 :(得分:0)

您可以使用此代码

    $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
    )

)