我正在尝试替换路径的“file.type”结尾,我已经编写了这个正则表达式,但它似乎不起作用:
String path = otherPath.replaceAll("(.*)/[a-zA-Z]*/.[a-zA-Z]*", "")
错误在哪里?
示例:如果我有路径this/is/a/path/file.txt,那么我想使用上面的语句来生成路径:this/is/a/path/
我会简单地使用:"\\.+\\w+"
作为正则表达式:
String s = "file.type.type.type";
s = s.replaceAll("\\.+\\w+", "");
System.out.println(s); // print "file"
这\\w+
是一个预定义的正则表达式字符类,它表示,A word character: [a-zA-Z_0-9]
这将输出一次"file"
删除所有内容".type"
。但是,如果您希望仅删除".type"
文件名中的最后一个,那么最简单的方法是使用s.substring(0, s.lastIndexOf("."))
,它将仅删除文件名中的最后一个“.type”:
String s = "file.type.type.type";
s = s.substring(0, s.lastIndexOf(".")); // print "file.type.type"
尝试这个:
String path = path.replaceAll("(/.)*[a-zA-Z]*", "")
根据RegexBuddy的库来解析扩展是以下正则表达式:
\.[^.\\/:*?"<>|\r\n]+$
path = path.replaceAll("(?i)\\.[^.\\\\/:*?\"<>|\r\n]+$", "");
以下正则表达式模式可能适合您:
"[^.\\/]+?\\.[^.]+$"