2013-03-19 3564 views
0

我的Java應用程序將會得到如下形式的字符串:如何去除Java字符串中的大括號?

How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan. 

,需要一個正則表達式/方法,將剝離出的[[ ]]每個實例(和全包文本),從而把上面的字符串爲:

How now. The arsonist feet. The a bank loan. 

聲明保留的雙空格(arsonistfeet,與和之間Thea之間)?這也很重要。

不確定這裏的正則表達式是否合適,或者是否有更有效的方法剔除不需要的[[ ]]實例。

+0

@NilsH如何與string.replace? – 2013-03-19 10:08:51

+0

@NilsH與String.replace很難刪除括號內的部分。正則表達式似乎是要走的路。 – 2013-03-19 10:09:08

+0

'[[有些好]或者可能[[不好]]'預期的行爲是什麼' – nhahtdh 2013-03-19 10:12:58

回答

3

這是javascript。

var text = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan." 
text.replace(/\[\[[^\]]+\]\]/g, "") 

要匹配的正則表達式的括號將

/\[\[[^\]]+\]\]/g 

所以相當於Java將是

text.replaceAll("\[\[[^\]]+\]\]", ""); 

,並用一個空字符串

正則表達式,可以刪除這兩個更換雙重和三重大括號

text.replaceAll("\[?\[\[[^\]]+\]\]\]?", "") 
+0

這是什麼語言? – 2013-03-19 10:10:48

+3

@defaultlocale看起來像Javascript:p – HamZa 2013-03-19 10:11:35

+0

@Pankaj OP問題是在java – 2013-03-19 10:15:15

2

這是replaceAll

str = str.replaceAll("\\[\\[[^\\]]*\\]\\]", ""); 

簡單假設括號之間沒有]

+0

謝謝@MikeM(+1) - 以及如果我有一些三重大括號的實例('[[[]]]') - 是否適用同樣的正則表達式,還是必須更改它?再次感謝! – IAmYourFaja 2013-03-19 10:15:37

2

嘗試使用此代碼:

public class Test{ 
public static void main(String[] args) { 
    String input = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan."; 
    // Will replace all data within braces [] 
    String replaceAll = input.replaceAll("(\\[.+?\\])|(\\])", ""); 
    System.out.println(replaceAll); 
} 

}

希望這有助於。

+0

謝謝@Ankur(+1) - 請參閱我在MikeM的回答下的評論 - 我對你有同樣的問題! – IAmYourFaja 2013-03-19 10:17:07

+0

是@DirtyMikeAndTheBoys - 我給你的代碼將會正常工作。 :-) 需要幫助請叫我。 – 2013-03-19 10:22:11

+0

@MikeM - 對於所有的組合都可以正常工作。我也測試過它。嘗試一次。 – 2013-03-19 11:04:27

2
tring s = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan."; 

s=s.replaceAll("\\[.*?\\]","").replace("]",""); 

輸出:

How now . The arsonist feet. The a bank loan. 
+0

謝謝@Achintya Jha(+1) - 請參閱我在MikeM的回答下的評論 - 我對你有同樣的問題! – IAmYourFaja 2013-03-19 10:20:02

+0

@DirtyMikeAndTheBoys它也適用於[[[]]]。 – 2013-03-19 10:22:57

相關問題