正则表达式过滤文件列表,听起来简单,如果用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的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
JAVA正则表达式过滤文件的实现方法 JAVA正则表达式过滤文件的实现方法是指使用JAVA语言实现文件过滤的方法,通过使用正则表达式来匹配文件名或路径,从而实现对文件的过滤。下面将详细介绍两种实现方法。 方法一:...
根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。正则表达式在Java中主要通过`java.util.regex`包来实现,提供了`Pattern`、`Matcher`和`...
在Unix工具中,如sed(流编辑器)、awk(一种数据处理脚本语言)和grep(全局正则表达式打印),正则表达式被广泛使用来处理文本文件。egrep是grep的一种增强版本,提供了更丰富的正则表达式支持。此外,vi编辑器的...
Java正则表达式教程是为那些想要深入了解Java编程语言中正则表达式使用方法的初学者准备的。正则表达式(Regular Expression)是一种强大的文本处理工具,它用于模式匹配、搜索、替换等操作,广泛应用于字符串处理和...
这段代码会读取名为"example.txt"的文件,并使用正则表达式查找所有包含单词"Java"的行,打印出匹配的文本。 综合运用Java IO系统和正则表达式,可以有效地处理和分析数据,无论是简单的文件读写还是复杂的文本处理...
Java正则表达式是Java编程语言中的一个强大工具,它用于处理字符串,进行模式匹配和文本搜索与替换。正则表达式(Regular Expression)是一种特殊的字符序列,可以用来描述一个或多个字符串的模式。在Java中,正则...
根据提供的文件信息,我们可以深入探讨正则表达式在Python中的应用。正则表达式是一种强大的文本处理工具,能够帮助我们高效地完成字符串的查找、替换等操作。下面将结合具体的例子来详细介绍正则表达式的使用方法...
例如,JavaScript、Python、Java等语言虽然都支持正则表达式,但具体的语法和功能细节可能有所不同。 总之,正则表达式验证工具是提升正则表达式使用体验的重要辅助工具,它们帮助我们更好地理解和调试正则表达式,...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于Perl风格的正则表达式,可以用来进行文本的查找、替换和提取等操作。在Java中,正则表达式通过`java.util.regex`包提供的类和接口来实现。这篇博文...
Java正则表达式是Java编程语言中用于处理字符串模式匹配的一种强大工具。它基于Perl5的正则表达式语法,提供了灵活且强大的文本处理能力。在Java中,正则表达式通常通过`java.util.regex`包中的类来实现,如`Pattern...
5. **安全防护**:防止SQL注入和跨站脚本攻击(XSS),通过正则表达式过滤掉潜在的恶意输入。 6. **日志分析**:在处理日志文件时,正则表达式可以帮助快速定位和提取关键信息。 7. **数据提取**:从网页抓取或API...
3. 文件名过滤:在文件管理系统中,通过正则表达式筛选出符合条件的文件。 4. Web爬虫:在网页源代码中,利用正则表达式提取所需信息。 5. 编辑器或IDE:许多编辑器支持正则表达式的查找和替换功能,提高开发效率...
- Java正则表达式同样支持预查和后查,如`(?)`和`(?<!...)`。 5. **C#中的正则表达式**: - C#通过`System.Text.RegularExpressions`命名空间提供正则表达式支持,如`Regex`类。 - `Regex.IsMatch()`、`Regex....
在Linux、Unix或Windows的命令行中,正则表达式常用于文件查找、内容过滤等任务,这个专题可能详细讲解了相关命令和技巧。 《正则表达式30分钟入门教程.htm》与前面的入门教程相似,可能是HTML格式的版本,方便在线...
【Java文件读写】在Java编程中,文件读写是常见的操作,用于...以上是对给定文件内容中涉及的Java文件读写和正则表达式检索知识点的详细解释。在实际开发中,这些技术经常结合使用,以实现灵活且高效的文本处理功能。
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许我们通过模式匹配和查找来解析、验证或提取文本。在本文中,我们将重点讨论如何在Java中使用正则表达式来抓取网页中的电子邮件地址以及进行代码统计。 ...
Java正则表达式是编程语言Java中的一个强大功能,它允许开发者通过模式匹配来处理字符串。这个在线Java正则表达式测试工具就是为...通过阅读这两个文件,开发者可以更深入地理解和使用这个在线Java正则表达式测试工具。