日期:2014-05-20  浏览次数:20856 次

replaceFirst的问题
以下代码,
String   str1   =   "1234\\q\23 ";
String   str2   =   "1234\\q ";
str1   =   str1.replaceFirst(   str2, " ");

执行的时候为什么会出异常呢!
java.util.regex.PatternSyntaxException:   Illegal/unsupported   escape   squence   near   index   5

------解决方案--------------------
首先str1的\23没有意义,可能你需要的是\\23
str2的正则表达式不正确,\\q没有意义不被支持,而如\\d则可以,建议看正则表达式的知识
如果你想把 "1234\\q\23 "替换为 "\23 "
把str1改为 "1234\\q\\23 "
把str2改为 "1234\\\\. "就可以