2014-10-09 85 views
2

我有一個包含正常英文單詞以及方括號內顯示的某些信息([])的字符串。刪除文本及其內容中的方括號

我需要從字符串中刪除所有方括號及其內容。

例如,字符串下面:

字符串: 「狗[0]有骨[1] [2]」

需要被重整以:

字符串: 「狗有骨」

+2

你爲什麼要使用正則表達式對於這樣一個簡單的任務?我會這樣做的方式?迭代字符串的字符,跟蹤開放和關閉的括號(一個簡單的計數器會做;每個[+1]和每個[+1])。如果計數器不爲零,則忽略當前字符,否則將其附加到新字符串。 – InBetween 2014-10-09 18:41:57

+0

@In之間如果計數器變爲負數「a [b] c] d] e] f [g]」 – juharr 2014-10-09 18:47:45

+0

@icemanind我無法看到我的算法在您的示例中失敗的位置。只要計數器> 0,它將忽略字符。唯一的缺陷是格式錯誤的輸入字符串(不匹配的括號)。在這種情況下,我會用參數異常保留,因爲OP沒有指定這是否可能。 – InBetween 2014-10-09 18:49:40

回答

3
\[[^]]*\] 

試試這個。更換empty string。看演示。

http://regex101.com/r/xT7yD8/2

+0

我不認爲這適用於不匹配的方括號或嵌套的方括號,例如「abc [d [e] f ]「會變成」abcf「」。 – juharr 2014-10-09 18:45:14

+0

@juharr OP沒有提出相同的建議 – vks 2014-10-09 18:59:02