2013-03-26 103 views
1

我想去掉圆括号内的单个字符的所有内容。例如,在“我在部分(a)而不是(aaa)”字符串中,期望的结果是“我是部分而不是(aaa)”,其中第二个括号对因为它更长而保留。我怎样才能在Java中实现这一点?我已经尝试过以下但它不匹配任何东西!如何去除Java字符串中的空白/单字符圆括号

String text = "the meaning of 5 U.S.C. 552(a)(6)(B) and Section 1.16(b) ."; 
text.replaceAll("\\(.?\\)", ""); // should return "the meaning of 5 U.S.C. 552 and Section 1.16 ." but doesn't! 

我认为这个问题是怎么了逃避反斜杠和括号字符,但我已经尝试了许多变化,如“\\(。\\?)”无济于事。此外,他们似乎在网上正规表达网站工作,所以我完全失去了什么可能是错的。

+4

那么它现在返回什么?请注意,您目前*忽略*返回值 - 您只是调用'replaceAll',它不会更改* existing *字符串,但会返回一个新字符串,并进行替换。这可能是问题吗? – 2013-03-26 18:28:38

+0

[Java的可能的重复:从字符串中删除char的所有发生](http://stackoverflow.com/questions/4576352/java-remove-all-occurances-of-char-from-string) – fglez 2013-04-05 08:11:16

回答

6

你的正则表达式看起来很好 - 你可能忘记将结果分配给一个变量?

text = text.replaceAll("\\(.?\\)", ""); 
相关问题