在JAVA中使用正则表达式替换重复的字母
假设我有一个字符串,如:在JAVA中使用正则表达式替换重复的字母,java,regex,Java,Regex,假设我有一个字符串,如: String s = "hellllooooo howwwwwww areeeeeee youuuuuuu"; 我想丢弃重复的字母,并想得到: "helloo howw aree youu" 我已使用以下命令完成匹配: matches(".*([a-z])\\1{3,}.*" 但是如何将Hellooo替换为Hellooo和其他?以下任何一项都会产生您想要的结果: s = s.replaceAll("([a-z])\\1+",
String s = "hellllooooo howwwwwww areeeeeee youuuuuuu";
我想丢弃重复的字母,并想得到:
"helloo howw aree youu"
我已使用以下命令完成匹配:
matches(".*([a-z])\\1{3,}.*"
但是如何将Hellooo替换为Hellooo和其他?以下任何一项都会产生您想要的结果:
s = s.replaceAll("([a-z])\\1+", "$1$1");
s = s.replaceAll("(([a-z])\\2)\\2*", "$1");
如果我可以问:我以前没有在regexp模式中看到“\\1”,它是做什么的?使用“for”怎么样?从索引0-s进行跟踪。长度()?