利用正则表达式从文件路径中提取出文件名(包含后缀)
如:从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)。
原文链接:https://www.f2er.com/regex/361107.html