我们在用到string的replaceAll方法时,偶尔出现这个问题,就是Illegal group reference 转换失败,原因就是
String的replaceAll(regex, replacement)方法的第一个参数支持正则表达式,如果参数replacement中出现符号“$”,会按照$1 2 的 分 组 模 式 进 行 匹 配 ; 当 编 译 器 发 现 “ 2的分组模式进行匹配;当编译器发现“ 2的分组模式进行匹配;当编译器发现“”后跟的不是整数的时候,就会抛出“Illegal group reference”的异常
解决方法:
java.util.regex.Matcher.quoteReplacement 对$字符进行转义再replaceAll即可