利用正则表达式从文件路径中提取出文件名(包含后缀)
如:从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)。