字符串替换所有不适用于$

时间:2014-01-23 07:09:50

标签: 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");

不起作用。我认为它是一些regEx funkyness。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

String#replaceAll接受 regex 作为参数,而不是String。 $special character,不会被称为字符串。解决方案:

  • 改为使用String#replace - 它接受字符串而不是正则表达式:

    string.replace("<$200","&lt;$200");

  • 使用Pattern#quote - 返回字符串表示形式:

    string.replaceAll(Pattern.quote("<$200"),"&lt;$200");

  • Escape special characters在特殊字符之前添加\\

答案 1 :(得分:1)

使用此

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