靓号,java正则表达式的实现

移动号码规则配置文件patten.txt

## 移动号码规则
ABCD E (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d 1
AAAA E (\d)\1{3} 2
ABBB E (\d)((?!\1)\d)\2{2} 3
AAAB E (\d)\1{2}((?!\1)\d) 4
AABB E (\d)\1{1}((?!\1)\d)\2{1} 5
ABAB E (\d)((?!\1)\d)(\1\2){1} 6
AAAAA E (\d)\1{4} 7

测试代码

public static void main(String[] args) {
		Set<ModeDef> modeDefs = FileRead.getBaseData("C:\\TempData\\gz-workspace\\crmweb\\src\\patten.txt");
		
		// 测试号码
		List<String> chinaNums = Arrays.asList("1343433333", "1343423333", "1343443456"
				, "1343422333", "1343422223", "1343422233", "1343422323");
		
		for (String num : chinaNums) {
			for (ModeDef modeDef : modeDefs) {
				
				String pattern = null;
				if ("E".equals(modeDef.getModeTyte())) {
					pattern = ".*" + modeDef.getRegex() + "$";
				} else if ("A".equals(modeDef.getModeTyte())) {
					pattern = ".*" + modeDef.getRegex() + ".*";
				}
				
				boolean isMatch = Pattern.matches(pattern, num);
				if (isMatch) {
					System.out.println(num + " : " + modeDef.getModeDef());
					break;
				}
			}
		}
	}

测试结果

1343433333 : AAAAA
1343423333 : AAAA
1343443456 : ABCD
1343422333 : ABBB
1343422223 : AAAB
1343422233 : AABB
1343422323 : ABAB

QQ号码规则配置文件patten_qq.txt

## 移动号码规则
## QQ靓号规则
AAAAAAA A (\d)\1{6} 1
AAAAAA A (\d)\1{5} 2
AABBCC A (\d)\1((?!\1)\d)\2((?!\2)(?!\1)\d)\3 3
AAABBB A (\d)\1{2}((?!\1)\d)\2{2} 4
ABABAB A (\d)((?!\1)\d)(\1\2){2} 5
ABCABC A ((\d)((?!\2)\d)((?!\2)(?!\3)\d))\1 6
ABCDEF A (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d 7
FEDCBA A (?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\d 8
ABCCBA A (\d)((?!\2)\d)((?!\2)(?!\3)\d)\3\2\1 9
ABCFABC A ((\d)((?!\2)\d)((?!\2)(?!\3)\d))(\d+)\1 10
ABCFCBA A (\d)((?!\2)\d)((?!\2)(?!\3)\d)(\d+)\3\2\1 11
AAAAA A (\d)\1{4} 12
ABCDE A (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){4}\d 13
EDCBA A (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){4}\d 14
ABCD E (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d 15
AAAA E (\d)\1{3} 16
ABBB E (\d)((?!\1)\d)\2{2} 17
AAAB E (\d)\1{2}((?!\1)\d) 18
AABB E (\d)\1{1}((?!\1)\d)\2{1} 19
ABAB E (\d)((?!\1)\d)(\1\2){1} 20

测试代码

20
1233333331 : AAAAAAA
1233333311 : AAAAAA
1233445511 : AABBCC
1233355511 : AAABBB
1235353511 : ABABAB
1234534511 : ABCABC
1212345611 : ABCDEF
1287654311 : FEDCBA
1287667811 : ABCCBA
1876336781 : ABCCBA
1876338761 : ABCFABC

参考链接:https://blog.csdn.net/xhanguomzhu/article/details/79993782

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值