对于给定的单词,我想搜索至少 3 次出现在彼此旁边的所有子字符串,并将它们全部替换为一个。当子字符串只有一个字符时,我知道如何执行此操作。例如,下面的代码为输入字符串“Bahhhhhhh”返回“Bah”:
String term = "Bahhhhhhh";
term = term.replaceAll("(.)\\1{2,}", "$1");
但是,我需要一个更通用的模式将“Bahahahaha”转换为“Baha”。
最佳答案
String[] terms = { "Bahhhhhhh", "Bahahahaha" };
for (String term : terms) {
System.out.println(term.replaceAll("(.+?)\\1{2,}", "$1"));
}
输出:
Bah
Baha
关于java - 用一个副本替换一系列子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10934832/