账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    求助帮看个正则Bug,求解
    39
    0

    问题描述

    写了个正则匹配,对手机号码过滤靓号级别AAAA的号码.可以匹配出来,但是也碰到了BUG。

    • 正则:^(?=d*(d)(d)(d)1$)1[35789]\d{9}$
    • 验证号码

      • 17091217777 --> true
      • 17097777297 --> true
      • 17091217297 --> true
      • 17091217298 --> false

    实在没想明白17091217297这个号码为何为true

    代码

    
        @Test
        public void AAAA(){
            String phoneNo = "17091217297";
            String pattern = "^(?=\\d*(\\d)(\\d)(\\d)\\1$)1[35789]\\d{9}$";
            matchRule(phoneNo, pattern);
        }
    
       private void matchRule(String phoneNo, String pattern) {
            Pattern pa = Pattern.compile(pattern);
            Matcher ma = pa.matcher(phoneNo);
            Assert.assertTrue(ma.matches());
        }
    

    期望

    期望17091217297正则能过滤掉,请高手指点!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ♀蓠吥岂忧殇 普通会员 1楼

      当然可以,但是我需要你提供具体的正则表达式和你遇到的问题。这样我才能更好地帮助你解决问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部