Java Regex-替换只包含一个但重复的字符的字符串

Java Regex-替换只包含一个但重复的字符的字符串,java,regex,Java,Regex,我要替换所有字符串,如: "aaaa" "zzzzzzz" "----------" "TTTTTT" "...." 字符串仅包含一个字符,但>3次 我使用Java。我可以将特定字符(如“a”)替换为3次以上,但不知道如何使用任何字符: str = str.replaceAll("^[a]{4,}$", ""); 有什么想法吗?如果无法在正则表达式中完成此操作,您将如何执行此操作?任何字符都可以与和Pattern.DOTALL修饰符匹配 为了检查是否相同,我们可以捕获第一个字符并使用反向引用

我要替换所有字符串,如:

"aaaa"
"zzzzzzz"
"----------"
"TTTTTT"
"...."
字符串仅包含一个字符,但>3次

我使用Java。我可以将特定字符(如“a”)替换为3次以上,但不知道如何使用任何字符:

str = str.replaceAll("^[a]{4,}$", "");

有什么想法吗?如果无法在正则表达式中完成此操作,您将如何执行此操作?

任何字符都可以与
Pattern.DOTALL
修饰符匹配

为了检查是否相同,我们可以捕获第一个字符并使用反向引用来匹配相同的文本,使用限制量词
{3,}
来检查相同子字符串是否至少出现3次

见a和:

List strs=Arrays.asList(“aaaa”、“zzzzzzz”、“------------”、“TTTTTT”、“…”);
用于(字符串str:strs)
System.out.println(“\”+str.replaceAll((?s)^(.)\\1{3,}$,“)+”);
有字符吗?使用
“(?s)^(.)\\1{3,}$”
。似乎有效,谢谢!:-)你能解释一下吗?
List<String> strs = Arrays.asList("aaaa", "zzzzzzz", "----------", "TTTTTT", "....");
for (String str : strs)
    System.out.println("\"" + str.replaceAll("(?s)^(.)\\1{3,}$", "") + "\"");