Java String:替换包含$ sign的字符串

时间:2010-12-26 21:32:23

标签: java regex

如何在Java中替换字符串$1?我尝试过这个,但这并没有取代它:

System.out.println(someHTMLCodeAsString.replaceAll("$1", "REPLACED"));

6 个答案:

答案 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”!

相关问题