正则表达式过滤文件列表,听起来简单,如果用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正则表达式过滤文件的实现方法的相关资料,希望通过本文大家能够掌握理解这部分内容,需要的朋友可以参考下
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一定离不开正则表达式的配合。 1、什么是正则...
SQL 安全注入漏洞过滤器类 Java实现 Java类实现,以及配置文件web.xml
java笔试题重复字符串 内容 一、简介 REGEX 表示 REGular ...见下文,每个脚本将读取test.txt文件,使用我们的正则表达式^[0-9]+$ ,并将文件中的所有数字打印到控制台。 到目前为止,只考虑假设[0-9
施莱希法尔特一个简单的 bukkit 插件,用正则表达式过滤日志... 插件文件夹中的文件“filters.txt”包含正则表达式过滤器,每行一个。 以#开头的行被视为注释,而不是过滤器。 正则表达式语法正是语法。 CI 服务器:
过滤文件语法 过滤器文件的每一行都是一个以~ , = , !=或!~开头的表达式。 匹配将在文件中写入的顺序过滤器中进行,如果过滤器匹配,则将不执行后续过滤器。 任何以!~开头的行都与正则表达式不匹配,例如: !~...
谷歌爬虫 Google Crawler 是一个实验项目... 用户可以添加他/她喜欢的任何正则表达式过滤器 用户可以确定他/她搜索的结果有多近 用户的结果保存为纯文本(在 TXT 文件中) 该应用程序集成了一个独立的 Selenium 服务器
模糊蛇 一种实用程序,可在输入时使用模式的... 如果要对匹配进行更多控制,则可以使用完整的正则表达式来代替模糊匹配。 搜索还可以限制为特定类型的文件,例如C ++ / C文件,Python文件,Java文件等等。 纯Python的
水槽自定义正则表达式拦截器简单拦截器,它是 Flume 正则表达式过滤器拦截器的扩展。 使用可以指定需要从事件 bosy 中拉出以发送到 Channel/Sink 的字段列表添加了一个名为 indexSelector 的新文件 agent.sourcs....
2. 支持正则表达式:UrlRewriter Java v2.0 RC1支持正则表达式,可以更灵活地匹配和处理URL。 3. 易于集成:UrlRewriter Java v2.0 RC1可以轻松集成到Java Web应用程序中,无需修改现有代码。 4. 高性能:...
Areca Backup 是一个开源的备份软件,用 Java 写成。 Areca Backup 支持一般 ...(比如有上面所有软件都没有的正则表达式过滤, 按文件大小、 时间 等等) ,多种方式搜索备份目录
它需要输入,过滤要检查的文件,并在十点上对它们打分。这是基于命令行程序的,使用python 3.4构建bu。 它不是可执行文件。 (请参阅待办事项) 依存关系: 给出正则表达式的随机字符串模块。 如果输入将是正则...
特征 搜索日志文件(使用ctrl / command + F) 使用正则表达式(使用ctrl / command + H)突出显示日志文件中的行 可以使用自定义插件,以便更轻松地调查日志文件正在搜寻可以通过按ctrl / command + F来执行搜索。...
默认值 = 最低2.1 子串2.2 正则表达式过滤输出: 3.1 无输出 - 完全抑制消息3.2 吐司消息3.3 显示为通知捐赠(1 美元、2 美元和 5 美元的消耗品) 关于用于存储设置和日志的数据库记录 USSD 消息7.1 可配置的日志...
* 正则表达式匹配关键数据 * @param line * @return */ private Set<String> parse(String line) { Set resSet = new LinkedHashSet(); Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern...
您可以使用正则表达式过滤文件。 可以选择文件或文件夹。 可以创建文件和文件夹。 aFileDialog 是开源的,在 LGPL 3 下获得许可,并且与 Android 2.2+ 兼容。 在此处下载或访问下载部分。 您还可以安装可在 Google ...
java常用代码方法很适合初学者和刚刚参加工作的程序员,里面包含了常用正则表达式、公共日期类、串口驱动、各种数据库连接、公交换乘算法、 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤等等很多有用的...
RSSamantha是用Java编写... 此外,它还具有下载播客供稿的内容,通过正则表达式过滤供稿属性,对配置文件进行预处理以查找不方便的搜索字词,通过HTTP GET请求频道以及通过http POST从外部进程中添加/删除项目的功能。
功能: 从命令行输入一个参数(指定目录或文件),输出该目录下指定类型文件(.cs, .java)的个数、每个文件的总行数、空行数、注释...过滤文件,对空白行、注释行、代码行等进行预处理; 关键点是正则表达式的运用;
列出指定目录下的文件,并可过滤文件;创建文件和目录;删除文件和目录;移动文件和目录; 复制文件和目录;一个简单的文件搜索器; 多种方式读文件内容, 按字节读取文件内容、按字符读取文件内容、按行读取文件内容...