1

我有一堆电话号码,我希望能够判断一个号码是否看起来“有趣”。我的意思是,一个有重复数字的数字。例如:

822222222
822333444
822222999

基本上,822 + 两组相同的三个数字。

我正在用 JAVA 做这个,到目前为止我有这个:

if (number.matches("^((822|654|611)\\d{3}\\d{3})$"))

这显然与这些数字匹配,但它也匹配:

822315487

这不是一个特殊的数字。(不要注意654和611的数字,我也需要考虑。)

我该怎么办?如何构造一个匹配相同数字 3 次的正则表达式?

4

2 回答 2

5

核心问题是\d匹配任何数字,所以你说的是任何数字的 3x,而不是相同数字的 3x。所以你需要捕捉那个数字,然后重复两次。

^822(\d)\1{2}(\d)\2{2}$
于 2012-11-26T14:29:52.287 回答
4

How about the following for the final six digits:

(000|111|222|333|444|555|666|777|888|999){2}
于 2012-11-26T14:27:42.620 回答