0

我需要用空的替换双括号内的子字符串。我用:
source = source.replaceAll("\(.+?\)", "");

单括号内的子字符串被删除。相反,当我尝试使用双括号内的子字符串时,整个子字符串将被删除,但最后一个 ')' 仍然存在。
这里有什么问题?

提前致谢。

4

2 回答 2

1

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

(未测试)

于 2011-09-21T20:36:28.693 回答
1

+? 意味着您的匹配将采用尽可能的字符,这意味着它将抓住内部括号内的语句。

尝试:

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

我刚刚用\(?and包装了你的正则表达式\)?

于 2011-09-21T20:38:32.700 回答