如何在Java中用双括号替换子字符串?

时间:2011-09-21 20:33:51

标签: java regex replaceall

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

(未经测试)

答案 1 :(得分:1)

+?意味着您的匹配将使最少字符数量成为可能,这意味着它将获取内部带括号的语句。

尝试:

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

我刚刚使用\(?\)?包裹你的正则表达式。