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