2017-09-25 47 views
0

我有這樣如何從文本中刪除特定的重複字符?

"this is line 1\n\n\nthis is line 2\n\n\nthis is line 3\t\t\tthis is line 3 also" 

一個字符串我想要做的就是刪除,如「\ n」,「\ t」的從這段文字重複特定的字符。

"this is line 1\nthis is line 2\nthis is line 3\tthis is line 3 also" 

我嘗試了一些正則表達式,但沒有爲我工作。

text = text.replace("/[^\\w\\s]|(.)\\1/gi", ""); 

有沒有這樣的正則表達式?

+1

@anubhava這是java。 – hellzone

回答

3

如果需要,只除去sepcific空格字符,\s不會幫助,因爲它會均優於,也就是說,它也將匹配空間,硬盤空間等

你可以使用一個字符類與字符,用捕獲組包裝它們並使用反向引用來捕獲值。並用逆向引用替換爲第1組值:

.replaceAll("([\n\t])\\1+", "$1") 

regex demo

詳細

  • ([\n\t]) - 組1(具有\1從圖案和$1從替換模式稱爲):字符類匹配任一換行或標籤符號
  • \1+ - 一個或
+0

另請參閱[Java演示](https://ideone.com/kfvLGQ)。 –

+0

@WiktorStribiżew您的代碼完美工作。我現在有另一個問題。 「\ t \ n \ t \ n線1 \ t \ n \ tLine 2」我的文字看起來像這樣。我想將它替換爲「\ t \ nLine 1 \ t \ nLine 2」 – hellzone

+0

好的,我發現你已經找到了解決方案''.replaceAll(「\ n \ t \ n」,「\ n \ t」)' –

相關問題