我正在尝试删除其中包含“\”和“”的路径的开头。我似乎遇到了一些问题,说字符 3 处存在转义字符问题。 例子: SomePath: C:\Users\ADMINISTRATOR\App Play\blah\blah
SomePath.replaceFirst('C:\\Users\\ADMINISTRATOR\\App Play\\', '');
路径应该是blah\blah
我已经尝试过:
SomePath.replaceFirst("C:\Users\ADMINISTRATOR\App Play\", "");
SomePath.replaceFirst("C:\\Users\\ADMINISTRATOR\\App Play\\", "");
SomePath.replaceFirst("C:\\\\Users\\\\ADMINISTRATOR\\\\App Play\\\\", "");
SomePath.replaceAll("C:\Users\ADMINISTRATOR\App Play\", "");
SomePath.replaceAll("C:\\Users\\ADMINISTRATOR\\App Play\\", "");
SomePath.replaceAll("C:\\\\Users\\\\ADMINISTRATOR\\\\App Play\\\\", "");
最佳答案
刚刚尝试了一下...带有四个反斜杠的示例对我有用:
def somePath = "C:\\Users\\ADMINISTRATOR\\App Play\\blah\\blah"
println somePath
somePath.replaceFirst("C:\\\\Users\\\\ADMINISTRATOR\\\\App Play\\\\", "");
问题是字符串需要一个转义 \
并且由于 replaceFirst
使用正则表达式,因此正则表达式引擎需要另一个 \
来转义 \
。结果是四个反斜杠。
顺便说一句:您可以使用字符串操作来获取路径,但您也可以尝试像这样的文件操作:
def root= new File("C:\\Users\\ADMINISTRATOR\\App Play\\")
def full= new File("C:\\Users\\ADMINISTRATOR\\App Play\\blah\\blah")
def relPath = root.toPath().relativize( full.toPath() ).toFile()
println relPath
关于java - Groovy 删除路径的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52193014/