在JAVA替换使用正则表达式重复字母

问题描述:

假设我有一个字符串,如:在JAVA替换使用正则表达式重复字母

 String s = "hellllooooo howwwwwww areeeeeee youuuuuuu"; 

我要放弃重复的字母,并希望得到:

 "helloo howw aree youu" 

我已经用做匹配::

 matches(".*([a-z])\\1{3,}.*" 

但是我怎样才能取代helloooooooo helloo和其他人?

+0

如果我可能会问:我还没有在之前的正则表达式模式看到“\\ 1”,它有什么作用? – 2013-03-05 00:54:30

+0

如何使用'for'?从索引0-s.length()跟踪? – 2013-03-05 00:57:58

以下任何方式产生你想要的结果:

s = s.replaceAll("([a-z])\\1+", "$1$1"); 

s = s.replaceAll("(([a-z])\\2)\\2*", "$1"); 
+0

这正是我想要的..谢谢男人。 – Ronin 2013-03-05 09:13:53