正则表达式提取文件名?

时间:2017-07-07 19:41:58

标签: java regex

我想删除文件名的最后三个字符。要重命名任何文件,我正在使用:

var svg =
document.getElementById('svg-container').innerHTML;

这个正则表达式删除了最后三个字符没关系,但是当传递任何包含“t OR x”的文件名时,正则表达式将其删除。例如:

String str = ""; // Here set File name, i.e. listFile.getName();  
String[] tempFile = str.split("[$^txt]");

我的问题是:我如何才能删除最后三个字符。

谢谢

3 个答案:

答案 0 :(得分:4)

如果要删除文件的扩展名,则正则表达式对于任务而言过于复杂。您可以使用String.lastIndexOf(int)来确定文件扩展名的位置:

public static String extractFileName(final String fileName)
{
    final int dotIndex = fileName.lastIndexOf('.');
    return dotIndex < 0 ? fileName : fileName.substring(0,dotIndex);
}

答案 1 :(得分:0)

请尝试使用此RegEx:

 ^\\(.+\\)*(.+)\.(.+)$

答案 2 :(得分:0)

你可以简单地使用子串。 String.substring用于此目的。在您的情况下,您可以简单地使用str.substring(0, str.length - 3)来获取字符串中的最后3个字符。除此之外,您还可以使用str.split