源:http://www.landingbj.com/jbbs/t-0-203721-1.html
评:
在使用String的replaceFirst(regex,replacement)的时候出现java.lang.IllegalArgumentException: Illegal group
原因是第一个参数支持正则表达式,replacement中出现“$”,会按照$1$2的分组模式进行匹配,当编译器发现“$”后跟的不是整数的时候,就会抛出“非法的组引用”的异常。所以我们在使用replaceAll(regex, replacement)函数的时候要特别小心。如果真的要把String中的字符替换成"$AAA"的话,可以对replacement 进行“$”的转义处理。
解决方法:
替换掉replacement里面的$字符: s=s.replaceAll("\\$", "\\\\\\$");
评:
在使用String的replaceFirst(regex,replacement)的时候出现java.lang.IllegalArgumentException: Illegal group
原因是第一个参数支持正则表达式,replacement中出现“$”,会按照$1$2的分组模式进行匹配,当编译器发现“$”后跟的不是整数的时候,就会抛出“非法的组引用”的异常。所以我们在使用replaceAll(regex, replacement)函数的时候要特别小心。如果真的要把String中的字符替换成"$AAA"的话,可以对replacement 进行“$”的转义处理。
解决方法:
替换掉replacement里面的$字符: s=s.replaceAll("\\$", "\\\\\\$");
Java String替换异常解析
本文解析了在Java中使用String的replaceFirst方法时遇到的IllegalArgumentException异常原因,详细介绍了当replacement参数包含$符号时引发的问题,并给出了相应的解决办法。
953

被折叠的 条评论
为什么被折叠?



