如何在Java中替换字符串$1
?我尝试过这个,但这并没有取代它:
System.out.println(someHTMLCodeAsString.replaceAll("$1", "REPLACED"));
答案 0 :(得分:6)
$被解释为正则表达式而不是字符(它意味着'行尾')。试试System.out.println(someHTMLCodeAsString.replaceAll("\\$1", "REPLACED"));
答案 1 :(得分:3)
试
System.out.println(someHTMLCodeAsString.replace("$1", "REPLACED"));
答案 2 :(得分:0)
来自Java API docs: “请注意,替换字符串中的反斜杠()和 美元符号($) 可能会导致结果与将其视为文字替换字符串时的结果不同;请参阅Matcher.replaceAll。如果需要,使用Matcher.quoteReplacement(java.lang.String)来抑制这些字符的特殊含义。“
答案 3 :(得分:0)
你已经得到了一些反应。彼得劳雷是正确的。你需要使用正则表达式转义逃避$而不是字符串转义,因此双\。
System.out.println(someHTMLCodeAsString.replaceAll(“\\ $ 1”,“REPLACED”));
答案 4 :(得分:0)
或者,让正则表达式库为您处理:
someHTMLCodeAsString.replaceAll(Pattern.quote("$1"), "REPLACED")
答案 5 :(得分:0)
您可以简单地使用此方法:
someHTMLCodeAsString.replaceAll("\\$1", "REPLACED").
简单地将所有“$”替换为“REPLACED”!