记录一次Illegal group reference 错误
在做对文件解析入库时因为文件有个公式为"6<$IN<=12"导致报错:java.sql.Exception:Illegal group reference
开始以为是SQL执行时报错,最后将传入值进行挨个赋值到SQL中在工具中执行之后发现可正常入库并无没问题。
后经跟踪代码发现是在对SQL打印时发现有个String的replaceFirst方法进行替换SQL中问号进行日志输出时所替换字符串中包含(‘$’)符号导致报错。
解决办法:
最便捷方式为使用JDK中方法: java.util.regex.Matcher.quoteReplacement(str);
查看源码发现是根据传入指定字符串将生产一个新的字符串,且所产生字符串将于传入字符串中的字符序列匹配。其中('\') and (‘$’)不在具有任何意义。