我希望能够读取文本文件并识别手机号码及其在字符串中的位置。即使数字之间有空格,它也必须能够识别数字。我已尝试过以下操作,但如果它应该是包含两个手机号码的数组,则结果为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){}
正则表达式有问题吗?
答案 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