lgj123xj
猿长大人
采纳率33.3%
2019-03-22 09:58

正则表达式 - 如何取字符串中的电话号码?

5
  • java
  • 全文检索

字符串中的电话号码格式不唯一,如何只用一个正则表达式就将其取出来?
例子:

  • 我的电话是13866778899有空给我的打电话
  • 我的电话是138 6677 8899有空给我的打电话
  • 我的电话是138-6677-8899有空给我的打电话

就是手机号中间有可能会有空格存在,这样的正则该如何写呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • weixin_43816119 依我去 2年前

    \d\d\d.*\d\d\d\d.*\d\d\d\d 这个简单粗暴 不管你中间是什么

    点赞 评论 复制链接分享
  • qq_22847605 qq_22847605 2年前

    建议做个字符串转换,可以用字符串的替换函数replaceAll进行空格,-等特殊字符转换,然后通过手机号正则表达式/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/进行手机验证

    点赞 评论 复制链接分享
  • d2262272d 窝米逗佛~ 2年前

    java 的话在代码上帮不了你
    但是思路应该都是一样
    先去掉空格然后在用电话号码的正则表达式处理就是了

    void trim( string &s )
    {
        int index = 0;
        if ( !s.empty() )
        {
            while ( ( index = s.find( ' ', index ) ) != string::npos )
                s.erase( index, 1 );
        }
    }
    

    然后你看看这个的处理能不能帮到你把
    https://blog.csdn.net/github_36344730/article/details/79757676

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2年前
    \d{3}[\s\-]{0,1}\d{4}[\s\-]{0,1}\d{4}
    
    或者
    \d[\d\s\-]{9,}\d
    
    点赞 评论 复制链接分享
  • l_w610 l_w610 2年前

    是不是可以考虑把空格和- 替换成""再截取

    点赞 评论 复制链接分享