利用正则表达式从文件路径中提取出文件名(包含后缀)

前端之家收集整理的这篇文章主要介绍了利用正则表达式从文件路径中提取出文件名(包含后缀)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

利用正则表达式从文件路径中提取文件名(包含后缀)

如:从c:/test1/test1/文件.pdf提取 文件.pdf

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

运行结果为:文件.pdf

正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕我们就可以通过Matcher 类的group方法取到我们所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是 m.group(0)。

猜你在找的正则表达式相关文章