2011-09-21 87 views
0

我需要用一個空括號替換雙括號內的子字符串。我使用:
source = source.replaceAll("\(.+?\)", "");如何替換Java中的雙括號內的子字符串?

刪除單個括號內的子字符串。相反,當我用雙括號內的子字符串嘗試時,整個子字符串被刪除,但最後的')'仍然存在。
這裏有什麼問題?

在此先感謝。

+3

請張貼示例。如果你說「當我的代碼的輸入是[文本塊]時,我希望輸出是[另一個文本塊],那麼更容易遵循具體內容。」 – jefflunt

+1

你的意思是把'blah((yakkety))something'變成'blah(())something'或者你的意思是把'blah(yackittee)other-thing'改成'blah other-thing' ???或在之間? –

+0

我的意思是改變等於((yakkety))等於。 –

回答

1

The +?意味着你的匹配將會採用至少個字符,這意味着它會抓住內部加括號的語句。

嘗試:

source = source.replaceAll("\(?\(.+?\)\)?", ""); 

我剛剛結束的正則表達式與\(?\)?

+0

它的工作原理。有時它比看起來更簡單。 謝謝戴夫 –

+0

太棒了!如果你絕對好,你可以把這個標記爲答案。 :) – Dave

1

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

(未測試)

相關問題