正则表达式匹配4个或更多相同的字符

时间:2015-03-12 12:09:36

标签: java regex pattern-matching

我需要正则表达式来匹配以下情况。

4个或更多连续相同的字符/数字;例如1111,aaaa,bbbb,2222等

我尝试了这种模式匹配

Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1", Pattern.CASE_INSENSITIVE);

但我发现它只匹配3个或更多相同的字符。

  1. 请让我知道我需要做哪些更改才能匹配4个或更多相同的字符。

  2. 此外,我需要检查特殊字符“\”。请告诉我如何添加模式匹配语句...我需要提供“\\”吗?

2 个答案:

答案 0 :(得分:1)

您需要添加另一个反向引用:

Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1\\1", Pattern.CASE_INSENSITIVE);

基本上,括号表示匹配的组。从那里三个反向的,参考这个匹配的组,意味着所有四个组必须是相同的。

答案 1 :(得分:1)

您也可以使用{3,} ......

"([a-z\\d])\\1{3,}"

而不是多次添加\\ 1(避免在java中试过这个)。