我有以下代码:
String newStr = "aa\$";
print newStr;
print "wwwww ? eeee".replaceFirst("\\?", "'${newStr}'"); // (3)
Run Code Online (Sandbox Code Playgroud)
我一直在 - 第3行 - 得到以下错误:
Caught: java.lang.IllegalArgumentException: Illegal group reference
at com.example.MyBuilder.main(MyBuilder.groovy:196)
Run Code Online (Sandbox Code Playgroud)
看起来replaceFirst忽略了$被转义.我怎么能让我的代码运行?有人遇到过这样的错误吗?
第一
String newStr == "aa\$"
Run Code Online (Sandbox Code Playgroud)
应该
String newStr = "aa\$"
Run Code Online (Sandbox Code Playgroud)
然后,因为您使用普通字符串来声明正则表达式,所以需要双重转义美元符号:
String newStr = "aa\\$"
Run Code Online (Sandbox Code Playgroud)
或者,使用slashy字符串:
String newStr = /aa\$/
Run Code Online (Sandbox Code Playgroud)