2025-03-01 02:37:13
用 fname举个例子
String fName =" G:\\Java_Source\\navigation_tigra_menu\\demo1\\img\\lev1_arrow.gif ";
fName = fName.trim();
String temp[] = fName.split("\\\\"); /**split里面必须是正则表达式,"\\"的作用是对字符串转义*/
//temp[] = [G:, Java_Source, navigation_tigra_menu, demo1, img, lev1_arrow.gif]
System.out.println("temp[] = " + Arrays.toString(temp));
fName = temp[temp.length-1];
System.out.println("方法三:fileName = " + fName);
2025-03-01 03:48:09
方法如下,亲测有效。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
// 匹配文件名的正则表达式
private static final String REGEX = "([^<>/\\\\|:\"\"\\*\\?]+)\\.\\w+$+";
private static final Pattern FILE_NAME_PATTERN = Pattern.compile(REGEX);
public static String getFileName(String path) {
Matcher matcher = FILE_NAME_PATTERN.matcher(path);
// 使用while循环是因为一般匹配时存在多个匹配项,此例中只会匹配一个,也可直接用if判断
while (matcher.find()) {
String group = matcher.group();
return group;
}
// 未匹配到
return null;
}
public static void main(String[] args) {
System.out.println(getFileName("D:/test/test.txt"));
System.out.println(getFileName("D:/test/test.doc"));
System.out.println(getFileName("D:/test/abc/test2.xls"));
}
}