2012-08-02 50 views
1

去除特殊字符圖案我有一個字符串名稱S,如何在一個字符串

String s = "He can speak English and Sinhala.[1]He<ename> has edited 12 CSE Staff Research Publications.[1][2]" 

我想從字符串中刪除[1][1][2]。請注意,我們可以在方括號內和任何方括號內使用任何數字(如[number][number][number]...)。我試過用這個,

String removedNoTag = s.replaceAll("[\\[0-9\\]]",""); 

是的,它刪除所有[數字] ..模式。但它也刪除文本內的所有數字(它也刪除12)。

任何人都可以請告訴我如何做到這一點?

回答

1

因爲它刪除了一個數字或括號的任何字符的實例。

替換爲:\\[[0-9]+\\]

3

嘗試這樣的:String removedNoTag = s.replaceAll("\\[\\d+\\]","");

3

你在你的正則表達式逃逸錯了支架。你所尋找的是:

String removedNoTag = s.replaceAll("\\[[0-9]+\\]",""); 

String removedNoTag = s.replaceAll("\\[\\d+\\]",""); 

隨着\d作爲「的[0-9]簡稱

2

括號定義一組字符以刪除。組定義爲[,]0-9,因此檢測到這些組合的任何組合(例如[],2][3],[324],]1[[[)。

請改爲嘗試\\[\\d+\\],這意味着打開的括號,一個或多個數字(\d)和一個閉合括號。

相關問題