簡體   English   中英

如何在正則表達式java中用$替換\\ $

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM