如何使用Java replaceAll(正则表达式,替换)方法替换字符串中的所有方括号

时间:2015-08-03 17:08:36

标签: java regex

我正在学习java,我想使用java [] and {}将所有替换为空格RegExp

我的尝试,

final String data = "{a:b,c:d,e:[f,g,h]}";
System.out.println(data.replaceAll("[{}[]]", " ")); 

但我得到了java.util.regex.PatternSyntaxException: Unclosed character class near index 5 [{}[]]. ^

我认为java认为]位于第5位作为RegExp的终点。

那么我该怎样摆脱方括号并用空格[]{}替换所有

2 个答案:

答案 0 :(得分:5)

你必须逃避[内的][](字符类)

System.out.println(data.replaceAll("[{}\\[\\]]", " "));

答案 1 :(得分:2)

您需要使用反斜杠转义特殊字符[]

System.out.println(data.replaceAll("[{}\\[\\]]", " "));