评:
在使用String的replaceFirst(regex,replacement)的时候出现java.lang.IllegalArgumentException: Illegal group
原因是第一个参数支持正则表达式,replacement中出现“$”,会按照$1$2的分组模式进行匹配,当编译器发现“$”后跟的不是整数的时候,就会抛出“非法的组引用”的异常。所以我们在使用replaceAll(regex, replacement)函数的时候要特别小心。如果真的要把String中的字符替换成"$AAA"的话,可以对replacement 进行“$”的转义处理。
解决方法:
替换掉replacement里面的$字符: s=s.replaceAll("\\$", "\\\\\\$");
java.lang.IllegalArgumentException: Illegal group reference
原创
©著作权归作者所有:来自51CTO博客作者mb6440a93307547的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java.lang.IllegalArgumentException: Illegal group reference, replaceAll and dollar signs
This weblog is officially about inane things I run into while trying to do my job at work. Let’s say you have a String object like this:String mystring = "Your password: #PASSWORD";and at runtime you
职场 休闲 regex Illegal group refere replaceAll -
java.lang.IllegalArgumentException: Illegal pattern character 'o'
onvert from string to java.util.Date. for the same purpose I used fo
character documentation string date report