Java Regex替换路径中的文件名

Java Regex替换路径中的文件名,java,regex,Java,Regex,我正在尝试替换路径的“file.type”结尾,我已经编写了这个正则表达式,但它似乎不起作用: String path = otherPath.replaceAll("(.*)/[a-zA-Z]*/.[a-zA-Z]*", "") 错误在哪里 示例:如果我有路径this/is/a/path/file.txt,那么我想使用上面的语句生成路径:this/is/a/path/尝试以下操作: String path = path.replaceAll("(/.)*[a-zA-Z]*", "") 以下

我正在尝试替换路径的“file.type”结尾,我已经编写了这个正则表达式,但它似乎不起作用:

String path = otherPath.replaceAll("(.*)/[a-zA-Z]*/.[a-zA-Z]*", "")
错误在哪里

示例:如果我有路径this/is/a/path/file.txt,那么我想使用上面的语句生成路径:this/is/a/path/

尝试以下操作:

String path = path.replaceAll("(/.)*[a-zA-Z]*", "")

以下正则表达式模式可能适用于您:

"[^.\\/]+?\\.[^.]+$"
我只想使用:
“\\.+\\w+”
作为正则表达式:

String s = "file.type.type.type";

s = s.replaceAll("\\.+\\w+", "");
System.out.println(s); // print "file"
这里的
\\w+
是一个正则表达式的s,它表示一个单词字符:[a-zA-Z_0-9]

这将输出
“文件”
,删除所有
。立即键入“
”。但是,如果您希望仅从文件名中删除最后一个“
”.type“
,则最简单的方法是使用
s.substring(0,s.lastIndexOf(“.”))
,这将仅从文件名中删除最后一个“.type”:

String s = "file.type.type.type";
s = s.substring(0, s.lastIndexOf(".")); // print "file.type.type"
答复 根据的库,解析扩展的正则表达式如下:

\.[^.\\/:*?"<>|\r\n]+$
\.[^.\/:*?“\r\n]+$

你的密码
path=path.replaceAll(“(?i)\\.[^.\\\\/:*?\”\r\n]+$”,“”);

请发布输入和预期输出,并替换file.type结尾。你指的是文件扩展名,例如“.txt”或“.pdf”?在上面的示例中,你使用的是一个在这一行声明的变量…因此你基本上是在搜索一个空变量并试图替换它…我知道你刚刚做了这件事,可能这不是问题,但不清楚。做了一些编辑以清除问题。
path = path.replaceAll("(?i)\\.[^.\\\\/:*?\"<>|\r\n]+$", "");