Java 如何在replaceAll中的值中转义$
比如说Java 如何在replaceAll中的值中转义$,java,Java,比如说 String updateValue(String value) { return "PLACEHOLDER PLACEHOLDER".replaceAll("PLACEHOLDER", value); } updateValue("$3"); 预期输出为$3$3,但它将抛出错误java.lang.IndexOutOfBoundsException:由于字符$,没有组3。如何更新函数updateValue,以便输出预期结果
String updateValue(String value) {
return "PLACEHOLDER PLACEHOLDER".replaceAll("PLACEHOLDER", value);
}
updateValue("$3");
预期输出为$3$3
,但它将抛出错误java.lang.IndexOutOfBoundsException:由于字符$
,没有组3
。如何更新函数updateValue
,以便输出预期结果
这是我试过的
String updateValue(String value) {
return "PLACEHOLDER PLACEHOLDER".replaceAll("PLACEHOLDER", value.replaceAll("\\$", "\\\\$"));
}
但它不起作用,获取错误非法组引用:组索引丢失占位符占位符.replaceAll(“占位符”,“\\$3”)
工作由于搜索字符串未使用正则表达式,您可以使用标准的搜索和替换调用字符串。替换
。然后,不需要转义替换模式:
"PLACEHOLDER PLACEHOLDER".replace("PLACEHOLDER", "$3");
==> "$3 $3"
System.out.println(“占位符占位符”.replaceAll(“占位符”,“\\$3”)代码>谢谢!我刚刚更新了问题,你能再检查一下吗?System.out.println(updateValue(\\$3))代码>谢谢!我刚刚更新了问题,你能再检查一下吗?
"PLACEHOLDER PLACEHOLDER".replace("PLACEHOLDER", "$3");
==> "$3 $3"