识别并查找字母表中英国手机号码的位置

时间:2015-11-01 06:14:43

标签: php regex

我希望能够读取文本文件并识别手机号码及其在字符串中的位置。即使数字之间有空格,它也必须能够识别数字。我已尝试过以下操作,但如果它应该是包含两个手机号码的数组,则结果为false:

$fstring="A UK mobile number: 07765789098... here's another: 077 65362 723";
$pattern = "^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$^";
preg_match ($pattern, $fstring, $matches, PREG_OFFSET_CAPTURE);

var_dump($matches);

给我:

  

array(0){}

正则表达式有问题吗?

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式

$pattern = "/(\S44+[7]+\d{9})|(\S44+\s+[07]+\d{1}+\s+\d{5}+\s+\d{3})/";

将匹配+4477657890983 +44 077 65362 723

第一部分不会查找行或字符串的开头,它会在任何地方找不到电话,之后我会发现它是否有7或07作为不同的类型样式,之后它&#39 ; ll匹配9位数。

你去摇滚吧。还要检查你不能拥有+44的字符串。

$pattern = "/((\S44)?+0?[7]+\d{9})|((\S44+\s)?+[07]+\d{1}+\s+\d{5}+\s+\d{3})/";

这将匹配077657890981 077 65362 7232 +4477657890983 +44 077 65362 723