[英]how to replace \$ with $ in regex java
我有以下字符串
String valueExpression = "value1\\$\\$bla";
我希望將其解析為:
value1$$bla
當我嘗試做時:
valueExpression.replaceAll("\\\\$", "\\$");
我也一樣,當我嘗試這樣做時:
valueExpression.replaceAll("\\$", "$");
我收到一個錯誤IndexOutOfBound
如何在正則表達式中替換它?
字符串是動態的,因此我無法將字符串valueExpression的內容更改為靜態。
謝謝
valueExpression.replaceAll("\\\\\\\\[$]", "\\\\$");
應該可以實現您想要的。
最簡單的方法似乎是
valueExpression.replace("\\$", "$")
這類似於
valueExpression.replaceAll(Pattern.quote("\\$"), Matcher.quoteReplacement("$"))
這意味着它會自動從兩個部分( 目標和替換 )中轉義所有正則表達式字符,讓您使用簡單的文字。
BTW不要忘記String是不可變的,因此它的方法如replace
不能更改其狀態(不能更改其存儲的字符),但是會創建帶有替換字符的新String。
所以你想用
valueExpression = valueExpression.replace("\\$", "$");
例:
String valueExpression = "value1\\$\\$bla";
System.out.println(valueExpression.replace("\\$", "$"));
輸出: value1$$bla
您需要一個包含\\\\\\$
的字符串(雙反斜杠用於獲取文字反斜杠,反斜杠用於對$
進行轉義)。 要在Java中將引用的內容寫成字符串,您應該使用另一個反斜杠來對每個反斜杠進行轉義。 因此,您可以將其寫為"\\\\\\\\\\\\$"
。
IE瀏覽器。
valueExpression.replaceAll("\\\\\\$", "\\$");
使用直接字符串替換:
valueExpression.replace("\\\\$", "$");
或者您需要在替換字符串中轉義組引用:
valueExpression.replaceAll("\\\\$", "\\\\$");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.