对于给定的单词,我想要搜索彼此相邻的所有子字符串至少3次,并将所有子字符串替换为仅一个.当子串只有一个字符时,我知道如何做到这一点.例如,下面的代码为输入字符串"Bahhhhhhh"返回"Bah":
String term = "Bahhhhhhh";
term = term.replaceAll("(.)\\1{2,}", "$1");
Run Code Online (Sandbox Code Playgroud)
但是,我需要一个更通用的模式,将"Bahahahaha"转换为"Baha".
String[] terms = { "Bahhhhhhh", "Bahahahaha" };
for (String term : terms) {
System.out.println(term.replaceAll("(.+?)\\1{2,}", "$1"));
}
Run Code Online (Sandbox Code Playgroud)
Bah
Baha
Run Code Online (Sandbox Code Playgroud)