正则表达式 判断 连号如“123456”、同号如“888888”、连同号如“112233”“222333”...

正则表达式 判断 连号如“123456”、同号如“888888”、连同号如“112233”“222333”

 

 

import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  
public class Regu {  
  
    public static void main(String[] args) {  
        //匹配6位顺增  
        String pattern = "(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d";  
        Pattern pa = Pattern.compile(pattern);  
        String mc = "123456";  
        Matcher ma = pa.matcher(mc);  
        System.out.println("6位顺增 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配6位顺降  
        pattern = "(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\\d";  
        pa = Pattern.compile(pattern);  
        mc = "654321";  
        ma = pa.matcher(mc);  
        System.out.println("6位顺降 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配6位顺增或顺降  
        pattern = "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\\d";  
        pa = Pattern.compile(pattern);  
        mc = "234567";  
        ma = pa.matcher(mc);  
        System.out.println("6位顺增或顺降 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配4-9位连续的数字  
        pattern = "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3,}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){3,})\\d";  
        pa = Pattern.compile(pattern);  
        mc = "123456789";  
        ma = pa.matcher(mc);  
        System.out.println("4-9位连续的数字 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配3位以上的重复数字  
        pattern = "([\\d])\\1{2,}";  
        pa = Pattern.compile(pattern);  
        mc = "888888";  
        ma = pa.matcher(mc);  
        System.out.println("3位以上的重复数字 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配手机号码类  
        pattern = "(13[0-9]|15[0-9]|18[0-9])([\\d]{2,4}){2}";  
        pa = Pattern.compile(pattern);  
        mc = "18930333033";  
        ma = pa.matcher(mc);  
        System.out.println("手机号码 :" + ma.matches());  
        System.out.println("*******分割线*******");  
      
//      //匹配连同号如“112233”“222333”  
//      pattern = "([\\d])\1{1,}([\\d])\\2{2,}"; //这个测试没有通过,要重新编写  
//      pa = Pattern.compile(pattern);  
//      mc = "33111";  
//      ma = pa.matcher(mc);  
//      System.out.println("连同号如112233 , 222333 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
        //匹配2233类型  
        pattern = "([\\d])\\1{1,}([\\d])\\2{1,}";  
        pa = Pattern.compile(pattern);  
        mc = "2233";  
        ma = pa.matcher(mc);  
        System.out.println("2233类型 :" + ma.matches());  
        System.out.println("*******分割线*******");  
          
    }  
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值