产品展示 Dynamic News
上海莫尔丽信息科技有限公司 > 产品展示 >

Java replaceAll()方法报错Illegal group reference
发布于2025-02-19 17:38 文章作者:幻玉
replaceAll(regex, replacement)函数,因为第1个参数赞成正则抒发式,replacement中呈现“$”,会依照$1$2的分组形式停止婚配。当编译器出现“$”后跟的没有是整数的时分,便会扔出“不法的组援用”的同常。
比方,以下代码会报错:
publicclassTest{publicstaticvoidmain(String[]args){Stringstr="123ABC456";Stringre="#7T$/#";System.out.println(str.replaceAll("ABC",re));}}报错内乱容:
Exceptioninthread"main"java.lang.IllegalArgumentException:Illegalgroupreferenceatjava.util.regex.Matcher.appendWordStrment(UnknownSource)atjava.util.regex.Matcher.replaceAll(UnknownSource)atjava.lang.String.replaceAll(UnknownSource)atcn.com.vogue.Test.main(Test.java:6)处理举措:1个是JDK供给的办法,对于非常字符停止处置:对于要调换的字符干处置代码以下:
re=java.util.regex.Matcher.quoteWordStrment(re);把特等字符转为特定字符,而后接给接纳圆处置:比方将$调换为{ZF4}},固然,倘若是1家公司干借能够:
String[]strArr=ex.split("\\$");StringBuffersb=newStringBuffer();for(inti=0;i<strArr.length-1;i++){sb=sb.append(strArr[i]).append("{ZF4}");}sb.append(strArr[strArr.length-1]);ex=sb.toString();推举您浏览更多相关于“ 正则IllegalreplaceAll$非常字符 ”的作品