Java正则匹配手机靓号模板集 AAA+、AABB、AABA、ABBA等

Java正则匹配手机靓号

用于查号,匹配手机靓号的一些正则表达式

靓号规则代码

public class MatchRegexTemplateConstant {
    
    /*======================================== 匹配11位 ========================================*/

    // AAAAA 连续5个A A不包含4 匹配11位
    public static final String AAAAA_EXCLUDE_FOUR_MATCH_ALL = "([0-35-9])\\1{4}";

    // AAA+ 连续4个A A不包含4 匹配11位
    public static final String AAAA_EXCLUDE_FOUR_MATCH_ALL = "([0-35-9])\\1{3}";

    // AAA+ 连续3个A A不包含4 匹配11位
    public static final String AAA_EXCLUDE_FOUR_MATCH_ALL = "([0-35-9])\\1{2}";

    // AABB A或B不包含4 不连续 匹配11位
    public static final String AABB_EXCLUDE_FOUR_MATCH_ALL = "([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\2";

    // ABAB A或B不包含4 不连续 匹配11位
    public static final String ABAB_EXCLUDE_FOUR_MATCH_ALL = "([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1\\2";

    // AABA A或B不包含4 不连续 匹配11位
    public static final String AABA_EXCLUDE_FOUR_MATCH_ALL = "([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\1";

    // ABAA A或B不包含4 不连续 匹配11位
    public static final String ABAA_EXCLUDE_FOUR_MATCH_ALL = "([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1{2}";

    // ABBA A或B不包含4 不连续 匹配11位
    public static final String ABBA_EXCLUDE_FOUR_MATCH_ALL = "([\\d]|[[0-35-9]])(?!\\1)([\\d])\\2\\1";

    // AA A不包含4 不连续 匹配11位
    public static final String AA_EXCLUDE_FOUR_MATCH_ALL = "([0-35-9])\\1+";
    
    /*======================================== 匹配后八位 ========================================*/

    // AAAAA A不包含4 匹配后8位
    public static final String AAAAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([0-35-9])\\1{4}";

    // AAA+ 连续4个A A不包含4 匹配后8位
    // public static final String AAAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "\\d{3}([0-35-9])\\1{3}";
    public static final String AAAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([0-35-9])\\1{3}";

    // AAA+ 连续3个A A不包含4 匹配后8位
    public static final String AAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([0-35-9])\\1{2}";

    // AABB A或B不包含4 不连续 匹配后8位
    public static final String AABB_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\2";

    // ABAB A或B不包含4 不连续 匹配后8位
    public static final String ABAB_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1\\2";

    // AABA A或B不包含4 不连续 匹配后8位
    public static final String AABA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\1";

    // ABAA A或B不包含4 不连续 匹配后8位
    public static final String ABAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1{2}";

    // ABBA A或B不包含4 不连续 匹配后8位
    public static final String ABBA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\2\\1";

    // AA A不包含4 不连续 匹配后8位
    public static final String AA_EXCLUDE_FOUR_MATCH_LAST_EIGHT = "1\\d{2,}([0-35-9])\\1+";


    /*======================================== 匹配后四位 ========================================*/

    // AAAAA A不包含4 匹配后4位
    // public static final String AAAAA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([0-35-9])\\1{4}";

    // AAA+ 连续4个A A不包含4 匹配后4位
    public static final String AAAA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([0-35-9])\\1{3}";

    // AAA+ 连续3个A A不包含4 匹配后4位
    public static final String AAA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([0-35-9])\\1{2}";

    // AABB A或B不包含4 不连续 匹配后4位
    public static final String AABB_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\2";

    // ABAB A或B不包含4 不连续 匹配后4位
    public static final String ABAB_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1\\2";

    // AABA A或B不包含4 不连续 匹配后4位
    public static final String AABA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([\\d]|[[0-35-9]])\\1(?!\\1)([\\d])\\1";

    // ABAA A或B不包含4 不连续 匹配后4位
    public static final String ABAA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\1{2}";

    // ABBA A或B不包含4 不连续 匹配后4位
    public static final String ABBA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([\\d]|[[0-35-9]])(?!\\1)([\\d])\\2\\1";

    // AA A不包含4 不连续 匹配后4位
    public static final String AA_EXCLUDE_FOUR_MATCH_LAST_FOUR = "1\\d{6,}([0-35-9])\\1+";

}

靓号正则表达式验证

public class RegexUtils {

    private static List<String> NUMBER_LIST;

    static {
        NUMBER_LIST = new ArrayList<>();
        // AAAAA 匹配后八位
        // NUMBER_LIST.add("19211111382");
        // NUMBER_LIST.add("19202222288");
        // NUMBER_LIST.add("19206333338");
        // NUMBER_LIST.add("19203844444");
        // NUMBER_LIST.add("19203855555");
        // NUMBER_LIST.add("19203826666");
        // NUMBER_LIST.add("16666688352");
        // NUMBER_LIST.add("18777773352");

        // AAAA|AAA+ 匹配后八位
        NUMBER_LIST.add("19211110382");
        NUMBER_LIST.add("19202222888");
        NUMBER_LIST.add("19206333388");
        NUMBER_LIST.add("19203844447");
        NUMBER_LIST.add("19203855557");
        NUMBER_LIST.add("19203826666");
        NUMBER_LIST.add("17777688352");
        NUMBER_LIST.add("17888863352");
        NUMBER_LIST.add("17888864444");
        NUMBER_LIST.add("17888855554");
        NUMBER_LIST.add("17888853333");
        NUMBER_LIST.add("17888888883");

        // AABB 匹配后八位
        // NUMBER_LIST.add("18311225694");
        // NUMBER_LIST.add("18312233694");
        // NUMBER_LIST.add("18312334494");
        // NUMBER_LIST.add("18312344554");
        // NUMBER_LIST.add("18312345566");
        // NUMBER_LIST.add("18877244566");
        // NUMBER_LIST.add("18990046566");

        // ABAB 匹配后八位
        // NUMBER_LIST.add("17171556789");
        // NUMBER_LIST.add("17121256789");
        // NUMBER_LIST.add("17134346689");
        // NUMBER_LIST.add("17145456689");
        // NUMBER_LIST.add("17136767689");
        // NUMBER_LIST.add("17136898999");
        // NUMBER_LIST.add("17136808099");
        // NUMBER_LIST.add("17136829797");

        // AABA 匹配后八位
        // NUMBER_LIST.add("15535528644");
        // NUMBER_LIST.add("15112128644");
        // NUMBER_LIST.add("15334358644");
        // NUMBER_LIST.add("15133438226");
        // NUMBER_LIST.add("15136656226");
        // NUMBER_LIST.add("15136772726");
        // NUMBER_LIST.add("15136788586");
        // NUMBER_LIST.add("15136780090");

        // AA 匹配后八位
        // NUMBER_LIST.add("15536584524");
        // NUMBER_LIST.add("18336584524");
        // NUMBER_LIST.add("17166584524");
        // NUMBER_LIST.add("17144584524");
        // NUMBER_LIST.add("17135584524");
        // NUMBER_LIST.add("17135774524");
        // NUMBER_LIST.add("17135788524");
        // NUMBER_LIST.add("17135789924");
        // NUMBER_LIST.add("17135789004");
        // NUMBER_LIST.add("17135789022");
    }

    public static void main(String[] args) {
        // Pattern pattern = Pattern.compile(MatchRegexTemplateConstant.AABB_EXCLUDE_FOUR_MATCH_LAST_EIGHT);
        // Pattern pattern = Pattern.compile(MatchRegexTemplateConstant.AAAA_EXCLUDE_FOUR_MATCH_LAST_EIGHT);
        // Pattern pattern = Pattern.compile(MatchRegexTemplateConstant.AABB_EXCLUDE_FOUR_MATCH_LAST_EIGHT);
        // Pattern pattern = Pattern.compile(MatchRegexTemplateConstant.ABAB_EXCLUDE_FOUR_MATCH_LAST_EIGHT);
        Pattern pattern = Pattern.compile(MatchRegexTemplateConstant.AAAA_EXCLUDE_FOUR_MATCH_LAST_FOUR);
        for (String number : NUMBER_LIST) {
            boolean flag = pattern.matcher(number).find();
            if (flag) {
                System.out.println(number);
            }
        }
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值