Java replaceAll的陷阱之括弧

大家都知道,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("\\(\\)","");

你可能感兴趣的:(replaceAll)