我的正则表达式:

^(\d)\1{2}.\1{3}.\1{3}-\1{2}$


不允许重复:

000.000.000-00
111.111.111-11
222.222.222-22
333.333.333-33
444.444.444-44
555.555.555-55
666.666.666-66
888.888.888-88
999.999.999-99


根据https://www.regex101.com/,它工作正常

因此,我尝试将其放入Java中,我已经尝试过这种方式:^(\\d)\\1{2}.\\1{3}.\\1{3}-\\1{2}$,但绝对不想工作。

我的代码:

if (hasTheSameDigits(cpfReplaced)) {
    msg = "All the digits of informed CPF are equal.";
}

public boolean hasTheSameDigits(String cpf) {
     return cpf.matches("^(\\d)\\1{2}\\1{3}\\1{3}\\1{2}$");
}


如果有人可以帮助我,那将是很棒的。

最佳答案

此正则表达式应该起作用:([0-9])\1\1\.\1\1\1\.\1\1\1-\1\1\1

(注意:由于转义符"([0-9])\\1\\1\\.\\1\\1\\1\\.\\1\\1\\1-\\1\\1\\1",它膨胀到此Java字符串。)

说明:

([0-9])查找一个数字。

\1查找相同的数字。然后再次。然后再次。然后再次。

\..匹配

--匹配

08-17 15:09