我試圖剝離出一定的「<」和「>」從正在由第三方產生的(白癡)HTML代碼
我做一個的replaceAll爲一定的留下了我們的ETL人員沒有收到的條件。
I have this string: "<$200" and I need it to be XML compliant like "<$200"
string.replaceAll("<$200","<$200");
不起作用。我認爲這是一些regEx質樸。什麼是正確的方法來做到這一點?
我試圖剝離出一定的「<」和「>」從正在由第三方產生的(白癡)HTML代碼
我做一個的replaceAll爲一定的留下了我們的ETL人員沒有收到的條件。
I have this string: "<$200" and I need it to be XML compliant like "<$200"
string.replaceAll("<$200","<$200");
不起作用。我認爲這是一些regEx質樸。什麼是正確的方法來做到這一點?
String#replaceAll
接受正則表達式作爲參數,而不是字符串。 $
是一個special character不會被引用爲字符串。解決方案:
使用String#replace
代替 - 它接受一個字符串,而不是一個正則表達式:
string.replace("<$200","<$200");
使用Pattern#quote
- 它返回一個字符串表示:
string.replaceAll(Pattern.quote("<$200"),"<$200");
Escape special characters作者addi ng \\
之前的特殊字符。
+1爲詳細信息:) – TheLostMind
謝謝! String.replace工作得很好。 – mmaceachran
@mmaceachran這確實可以在這裏使用,但我建議你確保你明白爲什麼其他的替代方案也適用。 – Maroun
使用此
String demo ="<$200";
demo = demo.replaceAll("<","<");
System.out.println(demo);
'$'是在正則表達式表示字符串的結尾元字符;逃避它。 – devnull
「$」在正則表達式中有一個特殊的含義...它不是一個正常的字符..使用\\反斜槓來逃避它的特殊含義並正常解析它。 – TheLostMind