2012-06-09 83 views
4

我要替換的文字在方括號 「」 在Java中:代替方括號的Java

,比如我有一句

"Hello, [1] this is an example [2], can you help [3] me?"

它應該成爲:

「你好,這是一個例子,你能幫助我嗎?「

回答

14
String newStr = str.replaceAll("\\[\\d+\\] ", ""); 

這樣做是用空字符串替換正則表達式的所有匹配項。

正則表達式是這樣的:

\\[ // an open square bracket 
\\d+ // one or more digits 
\\] // a closing square bracket 
    // + a space character 

這裏的第二個版本(沒有什麼OP要求,但更好的處理空白的):

String newStr = str.replaceAll(" *\\[\\d+\\] *", " "); 

這樣做是更換所有出現的具有單個空格字符的正則表達式。

正則表達式是這樣的:

* // zero or more spaces 
\\[ // an open square bracket 
\\d+ // one or more digits 
\\] // a closing square bracket 
* // zero or more spaces 
+0

好,但你應該添加一個額外的空間來前的表達來擺脫額外的空間。 – Edwin

+1

@Edwin我在後面添加了這個,但是你說得對,前面更好 –

+0

增加了第二個版本,用於解決空間 –

4

這應該工作:

.replaceAll("\\[.*?\\]", "").replaceAll(" +", " "); 
+0

爲什麼你會認爲應該更換多個空間? – beerbajay

+0

@beerbajay從示例中,「你好,[1]這個」變成了「你好,這個」 –

+0

@beerbajay:從示例輸出。 – nhahtdh

1

請使用,

String str = "[How are you]"; 
str = str.replaceAll("\\[", "").replaceAll("\\]","");