今天在项目中使用java中replaceAll方法将字符串中的反斜杠("")替换成空字符串(""),结果出现如下的异常:
1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 ^
上网找了一下错误的原因:在regex中"\"表示一个"",在java中一个""也要用"\"表示。这样,前一个"\"代表regex中的"",后一个"\"代表java中的""。所以要想使用replaceAll方法将字符串中的反斜杠("")替换成空字符串(""),则需要这样写:str.replaceAll("\\","");
写一段测试代码演示上面出现的异常:
1 String s="C:盘"; 2 s.replaceAll("\","");
使用上面的代码会导致
1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 ^
要想将"C:盘"中的""替换成空字符串,正确的写法是:
1 s.replaceAll("\\","");
这样就可以正常替换了。