我需要正则表达式来匹配以下情况。
4个或更多连续相同的字符/数字;例如1111,aaaa,bbbb,2222等
我尝试了这种模式匹配
Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1", Pattern.CASE_INSENSITIVE);
但我发现它只匹配3个或更多相同的字符。
请让我知道我需要做哪些更改才能匹配4个或更多相同的字符。
此外,我需要检查特殊字符“\”。请告诉我如何添加模式匹配语句...我需要提供“\\”吗?
答案 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中试过这个)。