Java 字符串替换全部不适用于$

Java 字符串替换全部不适用于$,java,regex,Java,Regex,我正试图从由第三方(白痴)生成的HTML代码中去掉某些“” 我正在为一些未被ETL人员接受的特定遗留条件进行替换 I have this string: "<$200" and I need it to be XML compliant like "&lt;$200" string.replaceAll("<$200","&lt;$200"); 我有一个字符串:“接受一个正则表达式作为参数,而不是字符串。$是一个字符串,不会作为字符串引用。解决方案: 改用-

我正试图从由第三方(白痴)生成的HTML代码中去掉某些“”

我正在为一些未被ETL人员接受的特定遗留条件进行替换

I have this string:  "<$200"  and I need it to be XML compliant like "&lt;$200"

string.replaceAll("<$200","&lt;$200");
我有一个字符串:“接受一个正则表达式作为参数,而不是字符串。
$
是一个字符串,不会作为字符串引用。解决方案:

  • 改用-它接受字符串而不是正则表达式:

    string.replace(“使用此

    String demo ="<$200";
    demo = demo.replaceAll("<","&lt;");
    System.out.println(demo);
    

    String demo=“
    $
    是正则表达式中表示字符串结尾的元字符;请将其转义。”$"在正则表达式中有特殊含义…它不是一个普通字符..使用\\反斜杠来转义它的特殊含义并正常解析..@mmaceachran它确实可以在这里使用,但我建议您确保您理解其他替代方法为什么也可以工作。Pattern.quote只需要一个参数。并且不要忘记引用替换项,它包含一个$@Ingo谢谢,我更正了这一点。实际上,替换不应该被引用,它是一个字符串。它应该:注意,替换字符串中的反斜杠()和美元符号($)可能会导致结果不同于将其视为文字替换字符串时的结果;请参阅Matcher.replaceAll。使用Matcher.quoteReplacement(java.lang.String)来抑制这些字符的特殊含义,如果需要的话。@Ingo谢谢!