2013-03-05 122 views
3

假設我有一個字符串,如:在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

回答

4

以下任何方式產生你想要的結果:

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

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

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