如何将Linux父目录与Java正则表达式匹配?
Linux路径是如何将Linux父目录与Java正则表达式匹配?,java,regex,Java,Regex,Linux路径是。/../test/test/mydirectory/.. 我试图用这个正则表达式删除所有的。/ [s{/}] 但这会删除所有特殊字符 我只想删除。/../../../../../../并保留实际路径 String result = path.replaceAll("[s{/././///}]",""); 我希望正则表达式能够识别所有可能的。/../../../../../../空父目录,并且只保留真正路径名开始的真正目录 仅在字母开头处开始您可以使用 s.replaceFi
。/../test/test/mydirectory/..
我试图用这个正则表达式删除所有的。/
[s{/}]
但这会删除所有特殊字符
我只想删除。/../../../../../../
并保留实际路径
String result = path.replaceAll("[s{/././///}]","");
我希望正则表达式能够识别所有可能的。/../../../../../../
空父目录,并且只保留真正路径名开始的真正目录
仅在字母开头处开始您可以使用
s.replaceFirst("^(?:\\.{2}/)+", "")
模式匹配
-字符串的开头^
-一次或多次重复:(?:\\.{2}/)+
-两个点\.{2}
-斜杠/
.replaceFirst
将找到模式的第一个匹配项,并将其替换为空字符串。
是一个特殊的正则表达式字符。如果你想把
当作一个普通字符,你必须对它进行转义。你可能需要s.replaceFirst(“^(?:\.{2}/)+”,”)
是的,非常感谢。它工作得很好你真的想用正则表达式吗?为什么不java.nio.file.Path
?因为它是字符串而不是路径对象。我必须进行类型转换并捕获类型转换异常。