产品展示 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$非常字符 ”的作品

上海莫尔丽信息科技有限公司