在PHP中,我正在搜索特定文本中的语音.我explode()用来分隔不同部分的文本,使用我正在搜索的城市的区号作为分隔符.问题是包含与区号相同数字的phonenumbers 不能很好地返回.
例如:
"foofoo 010-1234567 barbar"分裂成"foofoo "和"-1234567 barbar"
但
"foofoo 010-1230107 barbar"分裂成"foofoo ","-123"和"7 barbar"!
我可以使用第一个用areacode重建phonenummer,但第二个当然错了...
我想我需要一个正则表达式来分割文本,使用某种机制不分裂在短字符串上,而不是explode(),但我不知道该怎么做.
在文本中搜索phonenumbers的任何想法或更好的方法?
更新: 格式不一致,因此寻找连字符是没有解决方案的.有些电话号码在区号和号码之间有空格,有些有挂钩,有些没有,等等.荷兰语的电话号码有2,3或4个号码,通常总共10个号码.
要找到如下电话号码:
试试这个:
$text = 'foofoo 010-1234010 barbar 010 1234010 foofoo ';
$text .= ' 010 123 4010 barbar 0101234010 foofoo 010-010-0100';
$matches = array();
// returns all results in array $matches
preg_match_all('/[0-9]{3}[\-][0-9]{6}|[0-9]{3}[\s][0-9]{6}|[0-9]{3}[\s][0-9]{3}[\s][0-9]{4}|[0-9]{9}|[0-9]{3}[\-][0-9]{3}[\-][0-9]{4}/', $text, $matches);
$matches = $matches[0];
var_dump($matches);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11862 次 |
| 最近记录: |