JAVA正则表达式过滤文件的实现方法

发布时间 - 2026-01-11 03:04:19    点击率:

JAVA正则表达式过滤文件的实现方法

  正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式 

1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)

String filePattern = "/data/logs/.+\\.log"; 
File f = new File(filePattern); 
File parentDir = f.getParentFile(); 
String regex = f.getName(); 
FileSystem FS = FileSystems.getDefault(); 
final PathMatcher matcher = FS.getPathMatcher("regex:" + regex); 
 
DirectoryStream.Filter<Path> fileFilter = new DirectoryStream.Filter<Path>() { 
 @Override 
 public boolean accept(Path entry) throws IOException { 
  return matcher.matches(entry.getFileName()) && !Files.isDirectory(entry); 
 } 
}; 
 
List<File> result = Lists.newArrayList(); 
try (DirectoryStream<Path> stream = Files.newDirectoryStream(parentDir.toPath(), fileFilter)) { 
 for (Path entry : stream) { 
  result.add(entry.toFile()); 
 } 
} catch (IOException e) { 
 e.printStackTrace(); 
} 
for(File file : result) { 
 System.out.println(file.getParent() + "/" + file.getName()); 
} 
 

2、适用于路径确定,文件名正则表达式的情况,这种正则表达式是JAVA支持的表达式,而非系统(unix)文件系统表达式(jdk8写法)

Path path = Paths.get("/data/logs"); 
Pattern pattern = Pattern.compile("^.+\\.log"); 
List<Path> paths = Files.walk(path).filter(p -> { 
 //如果不是普通的文件,则过滤掉 
 if(!Files.isRegularFile(p)) { 
  return false; 
 } 
 File file = p.toFile(); 
 Matcher matcher = pattern.matcher(file.getName()); 
 return matcher.matches(); 
}).collect(Collectors.toList()); 
 
for(Path item : paths) { 
 System.out.println(item.toFile().getPath()); 
} 
 

以上就是java 正则表达式过滤文件的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# JAVA  # 正则  # java正则表达式过滤文件的实现  # java使用正则表达式过滤html标签  # Java正则表达式过滤出字母、数字和中文  # 字符串过滤正则表达式的方法  # 正则表达式  # 适用于  # 如有  # 希望能  # 如果不是  # 文件列表  # 而非  # 谢谢大家  # 听起来  # 文件系统  # 疑问请  # 过滤掉  # PathMatcher  # matcher  # getPathMatcher  # final  # FS  # FileSystem  # getDefault  # FileSystems 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  昵图网官方站入口 昵图网素材图库官网入口  Internet Explorer官网直接进入 IE浏览器在线体验版网址  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  米侠浏览器网页背景异常怎么办 米侠显示修复  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何在云主机上快速搭建网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何在阿里云虚拟服务器快速搭建网站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  如何实现建站之星域名转发设置?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何在云主机快速搭建网站站点?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  免费网站制作appp,免费制作app哪个平台好?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速搭建高效WAP手机网站?  如何在IIS7上新建站点并设置安全权限?  Laravel如何使用查询构建器?(Query Builder高级用法)  韩国服务器如何优化跨境访问实现高效连接?  图册素材网站设计制作软件,图册的导出方式有几种?  如何挑选最适合建站的高性能VPS主机?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Python结构化数据采集_字段抽取解析【教程】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何保护应用免受CSRF攻击?(原理和示例)  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何快速搭建个人网站并优化SEO?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  php json中文编码为null的解决办法  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何撰写建站申请书?关键要点有哪些?  iOS UIView常见属性方法小结  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  如何用5美元大硬盘VPS安全高效搭建个人网站?