我有一堆电话号码,我希望能够判断一个号码看起来“有趣”。我的意思是,一个重复数字的数字。例如:
822222222
822333444
822222999
基本上,822 +两组三个相同的数字。
我正在用JAVA这样做,到目前为止我有这个:
if (number.matches("^((822|654|611)\\d{3}\\d{3})$"))
显然匹配这些数字但它也匹配:
822315487
这不是特殊号码。 (不要注意654和611号码,我也需要考虑它们。)
我该如何解决这个问题?如何构造匹配相同数字3次的正则表达式?
答案 0 :(得分:5)
核心问题是\d
匹配任何数字,因此您说的是任何数字的3倍,而不是相同数字的3倍。所以你需要捕获那个数字,然后重复两次。
^822(\d)\1{2}(\d)\2{2}$
答案 1 :(得分:4)
最后六位数字如下:
(000|111|222|333|444|555|666|777|888|999){2}