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


Identifying and finding the position of a UK mobile number in a string

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

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

给我:

数组(0){}

正则表达式有问题吗?

尝试此regex

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

将匹配+4477657890983 +44 077 65362 723

第一部分不会寻找行或字符串的开头,它会在任何地方找到手机no,然后我会发现它是否有7或07作为不同的类型样式,然后它会匹配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 匹配