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正则表达式规则(技术文档)

java正则表达式规则,包含java正则表达式基本知识、JavaScript RegExp对象参考手册、支持正则表达式的 String 对象的方法、定义正则表达式等内容。文档中有表达式的学习视频下载,配合文档会有不错的效果!

java使用正则表达式匹配,并修改文件内容(保留原文件格式)

1.实现了对文件夹中xml文件的筛选。 2.实现了对xml文件的批量更改。 3.正则表达式匹配具体的内容,修改并保存。

ybbgrain的历程 2962

智能车图像处理去畸变+逆透视教程

图像处理,去畸变与逆透视整合

wu58430的博客 1万+

【Java 基础篇】Java 正则表达式

本篇博客介绍了 Java 正则表达式的基本概念、语法和常用操作。我们学习了如何创建正则表达式模式对象、匹配器对象,以及如何使用它们进行字符串的匹配、提取和替换操作。正则表达式在 Java 程序中具有广泛的应用,可以帮助我们处理文本数据,提取关键信息,进行格式验证等。通过灵活运用正则表达式,我们可以更高效地处理字符串操作。希望本篇博客对你理解和使用 Java 正则表达式有所帮助。祝你在 Java 编程中取得更多的成功!

繁依Fanyi的博客 1万+

AD9361 官方例程详解(一)

文章目录前言一、pandas是什么?二、使用步骤总结 前言 一、pandas是什么? 二、使用步骤 总结

weixin_44630490的博客 4万+

CDO批量处理nc文件:5分钟搞定CMIP6数据双线性插值(附完整代码)

本文详细介绍了如何使用CDO工具链中的`remapbil`命令,快速实现CMIP6数据的批量双线性插值处理。通过环境配置、核心操作步骤、高级优化技巧及典型报错解决方案,帮助科研人员高效处理大规模nc文件,显著提升气象数据处理效率。

weixin_29267307的博客 292

Java 正则详解

Java正则详解

Byyyi耀的博客 1788

不只是驱动:拆解AIC8800 WiFi模组在RK Android系统的完整启动链(从DTS到HAL)

本文深入解析了AIC8800 WiFi模组在RK Android系统中的完整启动链,从设备树(DTS)配置到HAL层适配,涵盖驱动移植、固件加载及用户空间服务协同等关键环节。通过详细的技术分析和调试技巧,帮助开发者解决RK平台与AIC8800模组的兼容性问题,优化WiFi子系统性能。

weixin_30439067的博客 492

java正则匹配指定文件名称动态删除(保留最新的三个文件夹)升级版

java正则匹配指定文件名称动态删除(保留最新的三个文件)升级版 获取指定文件名 public static void main(String[] args) { ".* 你指定的文件名称字符.*" //为正则表达式 final String fileName = ".*JSMY_backup.*"; File path = new File("D://Demo");

神秘的凯 3254

8. Spring Ai之入门到精通(超级详细)

Spring AI 1.0.0 M1里程碑版本发布,标志着 Java 终于踏进Ai的时代半只脚。

gorgor在码农 3万+

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

java 正则过滤特殊符号

前言 一串字符串中有特殊符号,可能会影响到相关接口业务,所以需要把字符串中的特殊字符都过滤掉 百度上面搜索大部分处理方法是通过正则表达式, 他需要处理的特殊符号都写进正则表达式中去校验, 这种方式一眼看过去就非常别扭, 感觉不灵活, 万一需要过滤其他的又得临时加进去 解决方案 如下所示 public static String stringFilter (String str){ String regEx="[\\u00A0\\s\"`~!@#$%^&*()+=|{}':;',\\[\\]

qq_43399909的博客 3710

水与光的奇妙“切割之舞”:水导激光切割技术探秘

水导激光切割技术的诞生,是材料加工领域不断追求高精度、高质量加工的成果。传统激光切割技术在加工过程中,材料会因瞬间高温而产生热变形、热影响区大以及切割面粗糙等问题,这些弊端在对一些高精度、热敏性材料的加工中尤为突出 ,迫切需要一种新的技术来克服这些难题。水导激光切割技术的起源可以追溯到 20 世纪 80 年代。1986 年,德国公司 Aesculap-Werke AG 首次提出了将水流引入激光切割过程的创新想法,并制造出首代水导激光设备。不过,当时的技术尚处于雏形阶段,仅仅是在光纤出口添加了一小柱水流,激光

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1673

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

JAVA正则表达式过滤文件的实现方法正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)String filePattern = "/data/logs/.+\\.log";File f = new File(filePattern);File parentDir = f.getParentFile...

weixin_39606118的博客 706

【AI智能体】Codex AI 辅助编程高级技能实战操作详解

Codex AI 辅助编程高级技能实战操作详解

congge 6757

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法

java正则表达式过滤文件的实现方法正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)String filePattern = "/data/logs/.+\\.log";File f = new File(filePattern);File parentDir = f.getParentFile...

weixin_34496367的博客 202

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

JAVA正则表达式过滤文件的实现方法发布时间:2020-09-06 18:32:57来源:脚本之家阅读:102作者:QING____JAVA正则表达式过滤文件的实现方法正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)String filePattern = "/data/logs/.+\\.lo...

weixin_34365489的博客 826

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java 超大文件 正则_JAVA正则表达式过滤文件的实现方法

JAVA正则表达式过滤文件的实现方法正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)String filePattern = "/data/logs/.+\\.log";File f = new File(filePattern);File parentDir = f.getParentFile...

weixin_39858298的博客 172

java列出文件正则过滤_java – 通过定义正则表达式来过滤日志文件

我有一些巨大的日志文件(50Mb; ~500K行)我需要开始过滤掉一些垃圾.使用log4j生成日志文件,其基本模式为:[log-level] date-time class etc, etclog-message我正在寻找一种方法,我可以识别正则表达式开始和正则表达式结束(或类似的东西),将过滤掉文件中的匹配条目,以便我可以更轻松地浏览这些大量文件.我的想法是,开始正则表达式将是日志级别,最终正则...

weixin_42361283的博客 340

java列出文件正则过滤_Java中正则表达式实现过滤文件的方法

这篇文章主要介绍了JAVA正则表达式过滤文件的实现方法的相关资料,希望通过本文大家能够掌握理解这部分内容,需要的朋友可以参考下JAVA正则表达式过滤文件的实现方法正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式1、适用于路径确定,文件名时正则表达式的情况(jdk6的写法)String filePattern = "/data/logs/.+\\.log";...

weixin_36481714的博客 554

java 文件过滤出中文_Java中过滤出字母、数字和中文的正则表达式

1、Java中过滤出字母、数字和中文的正则表达式(1)过滤出字母的正则表达式[^(A-Za-z)](2)过滤出数字的正则表达式[^(0-9)](3)过滤出中文的正则表达式[^(\\u4e00-\\u9fa5)](4)过滤出字母、数字和中文的正则表达式[^(a-zA-Z0-9\\u4e00-\\u9fa5)]2、实例源码/*** @Title:FilterStr.java* @Package:com...

weixin_30590247的博客 253

java的文件过滤filter_34 java 文件过滤 FileFilter

package com.da.tool.util;import org.apache.commons.io.filefilter.RegexFileFilter;import java.io.File;import java.io.FileFilter;import java.io.FilenameFilter;/*** java 的 FileFilter和FilenameFilter测试使用*/...

weixin_28968629的博客 272

java文件名过滤器_文件名过滤器FilenameFilter的用法

Java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件;实例1,匹配指定字符结尾的文件package cn.test;import java.io.File;import java.io.FilenameFilter;import org.junit.Test;public class Demo4 {@Testpublic void test1(...

weixin_39720510的博客 1080

java正则表达式过滤特殊字符_java正则表达式 过滤特殊字符的正则表达式

java正则表达式 过滤特殊字符的正则表达式博客分类:http://dsds//gfgffdfd>fdf");StringBuffer buffer = new StringBuffer();while(matcher.find()){buffer.append(matcher.group());buffer.append("\r\n");System.out.println(buffer....

weixin_28697921的博客 328
上一篇: nginx/tomcat日志格式规范
下一篇: Flume基本特性(1.7)
iteye_19607
博客等级 码龄8年 34粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值