0

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

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

3 回答 3

1

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

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

我也改成这样,只要它继续下去,你也有所有的数字{12}+验证必须在之后进行。

只有使用()你才会有值返回到你的$matches变量。

于 2013-06-25T14:46:33.637 回答
0

这应该更加灵活和安全:

$matches = array();
preg_match_all('/Caller Phone\s*:\s*\(+|)([0-9]{8,12})/i', $text, $matches);
$phones = $matches[2];
于 2013-06-25T14:44:20.050 回答
0

您可以使用此代码

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

如果您在$text变量中有此数据

$text = "foo foo 随机词 来电者电话:+922432202229 随机词 foo 词";

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

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

)
于 2013-06-25T14:58:16.237 回答