利用正则表达式从文件路径中提取出文件名(包含后缀)
如:从c:/test1/test1/文件.pdf 中提取 文件.pdf
@Test
public void test1() {
// 正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,
// 最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕我们就可以通过Matcher
// 类的group方法取到我们所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。
String regEx = ".+/(.+)$";
String str = "c:/test1/test1/文件.pdf";
// String regEx = ".+\\\\(.+)$";
// String str = "c:\\dir1\\dir2\\文件.pdf";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (!m.find()) {
System.out.println("文件路径格式错误!");
return;
}
System.out.println(m.group(1));
}
运行结果为:文件.pdf
正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕我们就可以通过Matcher 类的group方法取到我们所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是 m.group(0)。