根据格式转换一个表里号码的等级,格式定义如下(匹配的都为最后几位):第一类 AAAAA(5连号) ABCDEF第二类 AAAA(4连号,不含4) ABCDE第三类 AAA(3连号,不含4) ABCD第四类 4444第五类 444 WWXXYY AAAAB第六类 AAAB AABB ABAB第七类 其他
号码为固话,11位长,前面是区号,后7位是号码,匹配的规则为后面几位如AAAAA 可以为05311522222求助大佬告诉我正则应该怎么写,感激不尽
4 回答

噜噜哒
TA贡献1784条经验 获得超7个赞
第一类(后5位) AAAAA
"05311500000".matches("[0-9]{6}(0{5}|1{5})")
第六类(后4位) AAAB AABB ABAB
"05311531110".matches("[0-9]{7}(0{3}[^0]|1{3}[^1]|2{3}[^2])")
"05311531100".matches("[0-9]{7}(0{2}[^0]{2}|1{2}[^1]{2})")
"05311531010".matches("[0-9]{7}((0[^0]){2}|(1[^1]){2})")

慕田峪7331174
TA贡献1828条经验 获得超13个赞
我来举两个栗子,其他的你要自己写,这里是解惑的不是问答案的,要自己举一反三。
//5连号
Pattern.matches("\\d{4}.*?(\\d)\\1{4}.*?","05311522222")
//4连号,不含4
Pattern.matches("\\d{4}.*?([0-3,5-9])\\1{3}.*?","05311533332")

aluckdog
TA贡献1847条经验 获得超7个赞
//第一类 AAAAA(5连号) ABCDEF
"^\\d{4}\\d{2}(\\d)\\1{4}$"
//第二类 AAAA(4连号,不含4) ABCDE
"^\\d{4}\\d{2}(\\d)(?!\\1)([0-35-9])\\2{3}$"
...
//第四类
"^\\d{4}\\d{2}\\d4{4}$"
添加回答
举报
0/150
提交
取消