阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java replaceAll的陷阱之括弧

Posted on 2012-02-14 11:12  阳光VIP  阅读(431)  评论(0编辑  收藏  举报

大家都知道,replaceAll这个东西支持regular expression的。不过。。

如果你要replace 中括号怎么办?

str.replaceAll("[]","");

你会发现出错了!

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 2
[]
 ^
        at java.util.regex.Pattern.error(Pattern.java:1713)
        at java.util.regex.Pattern.clazz(Pattern.java:2254)
        at java.util.regex.Pattern.sequence(Pattern.java:1818)
        at java.util.regex.Pattern.expr(Pattern.java:1752)
        at java.util.regex.Pattern.compile(Pattern.java:1460)
        at java.util.regex.Pattern.<init>(Pattern.java:1133)

。。。。

很郁闷吧!

这个时候需要改为:

str.replaceAll("\\[\\]","");

注意红颜色的部分哦。两个\。

 

同理

str.replaceAll("\\(\\)","");