[英]groovy or java: how can replace '\' with '\\' 'C:\www\web-app\StudyReports\test.bat'
我最終的目標是擁有一個像
def newline = 'C:\\www\web-app\StudyReports\\test.bat'
但是我的舊行只有一個'\\'
。
我嘗試了以下幾種不同的使用方式:
def newline = oldline.replaceAll(/\\/,'//')
但這沒有編譯。
如果我是你,我將用反斜杠替換反斜杠:
def newline=oldline.replaceAll(/\\+/, '/')
Java和Windows都將正斜杠用作文件分隔符,並且使用起來要容易得多。
要在Java或Groovy中匹配單個反斜杠,您必須輸入4次,因為編譯器和正則表達式引擎均使用反斜杠作為轉義字符。 因此,如果在Java中以字符串形式輸入"\\\\\\\\"
,則編譯器將生成包含兩個字符\\\\
的字符串,正則表達式引擎會將其解釋為與一個反斜杠\\
完全匹配的字符。
替換字符串也必須轉義兩次 ,因此您必須輸入8個反斜杠作為替換字符串。
在Java中,您可以使用String.replace(CharSequence target, CharSequence replacement)
,它不是基於正則表達式的。
您將編寫如下內容:
String after = before.replace("\\", "\\\\");
這雙打每\\
中before
。
String path = "1\\2\\\\3\\4";
System.out.println(path);
path = path.replace("\\", "\\\\");
System.out.println(path);
上面的輸出是( 如ideone.com上所示 )
1\2\\3\4
1\\2\\\\3\\4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.