Groovy:用简单的\转换字符串

Groovy: Convert string with simple \

我正在尝试转换动态获取的字符串,将 \ 加倍或将它们转换为 /(两者都适合我)。

格式为:

d:\code\main

我无法在源代码处对其进行编辑。

在我的测试中,我尝试使用 replace 或 replaceAll 函数,将 \ 改为 5 \\\,但我总是 运行 出现此错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
script15181726196231935876660.groovy: 4: unexpected char: '\' @ line 4, column 17. 
String main = "d:\code\main\blabla\blabla"
^ 

1 error 

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:302) 
    at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:119) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:131) 
    at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:359) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:137) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) ...

有没有办法转换或重建这个变量而不落入这个 Java 错误?

谢谢

\ 字符是转义字符 https://en.wikipedia.org/wiki/Escape_character。因此,要将其用作文字值,请改用 \

String main = "d:\code\main\blabla\blabla"

Dollar slashy stringSlashy string 都允许反斜杠。

def s1 = /d:\code/
def s2 = $/d:\code/$
s1.equals(s2) // true

slashy string 正好有一种情况,其中反斜杠是一个特殊符号 - 如果它出现在正斜杠之前:

def s3 = /This - \/ - is the forward slash/ 
// This - / - is the forward slash

可以找到文档 here