2016-06-24 29 views
0

我想從一個字符串數組[ab, cd ,ef]更換[]字符得到這樣的輸出:使用正則表達式從字符串數組中替換「[」和「]」的正則表達式是什麼?

(^\s*|[\n\t\r\[\]]) 

ab, cd, ef 

,但我沒能得到想要的輸出。

+1

你的代碼是怎樣的?你的正則表達式過於複雜,但它應該能夠找到'['和']'(和其他幾個字符),所以唯一的問題就是你如何使用它。 – Pshemo

+0

嘗試使用'\'轉義'[''。 =>「\ [」 –

+0

@RavindraHV OP確實轉義'['和']',但沒有正確格式化他的問題來顯示它。嘗試刷新此頁面以查看問題的更新版本。 – Pshemo

回答

1

爲什麼不從String類使用替換方法?

String str = "[ab, cd ,ef]"; 

str.replace("[", "").replace("]", ""); 
1

這將工作:

String str = "[ab, cd, ef]"; 

System.out.println(str.replaceAll("[\\[\\]]", "")); 

說明:它使用character class在正則表達式替換所有你不想要的字符。

輸出

ab, cd ,ef 
+0

對不起,我誤刪了我的評論。再次說明:就我所知,當OP打印出一串字符串時,會顯示'[ab,cd,ef]'。這不是字符串本身。 – SpaceCore186

+0

你正在做的是創建一個'String',然後設置''[ab,cd,ef]''作爲它的值。 您的解決方案有效,但您可以通過用字符串數組替換String來修改答案,只是爲了清楚起見。 – SpaceCore186

+0

@JavaNoob我不太確定你在做什麼。一個字符串數組,也沒有任何數組,具有實際的「[」和「]」字符。我怎麼可能提供我的例子而不使用字符串? –

0

雖然它不是一個正則表達式,如果我理解你想要正確地什麼(你正在做一個對字符串數組和修整的結果,從而獲得CSV) - 這將工作太:

String data = "[Hello World]"; 
System.out.println(String.copyValueOf(data.toCharArray(),1,data.length()-2)); 

這就是說,你最好不應該這樣做,因爲它不是靈活的(如果你想有一個分號或冒號,而不是一個逗號,那麼你必須做一次全部更換!)。理想情況下,您應該使用for-each來迭代,然後附加適當的分隔符。