首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工业电话号码Regex (一个Regex问题)

工业电话号码Regex (一个Regex问题)
EN

Stack Overflow用户
提问于 2011-08-18 16:46:09
回答 1查看 130关注 0票数 1

我正试图从通过联系表格提交给我的信息中提取电话号码。这份“联系表格”每天收到一千多份意见书,许多提交人正在犯格式化错误,例如:

“请回电925-943-2343分机304”(电话号码前无空位)

目前,我的regex (如下所示)正以某些格式错误(例如在数字之前缺少空格)缺少这些数字。

代码语言:javascript
复制
foreach (...)
{
    $regex = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})' 
        .'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})' 
        .'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/'; 
    if (preg_match($regex, $msg))
    {
        $phonenumber = preg_replace($regex, '($1) $2-$3 ext. $4', $msg); 
        echo $phonenumber;
    }
}

有小费吗?

相关问题:

代码语言:javascript
复制
$regex = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})' 
    .'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})' 
    .'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/'; 
$line = "(732) 912 0159 ";
if (preg_match($regex, $line))
{
    $phonenumber = preg_replace($regex, '($1) $2-$3 ext. $4', $line); 
    echo $phonenumber;
}

为什么这个什么都不回呢?

EN

回答 1

Stack Overflow用户

发布于 2011-08-18 16:58:58

试试这个:

代码语言:javascript
复制
[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}(?:i.{0,3}x?.{0,9})(\d{1,5})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7111057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档