我有以下字符串作为 glob 规则:
**/*.txt
和测试数据:
/foo/bar.txt
/foo/buz.jpg
/foo/oof/text.txt
是否可以使用 glob 规则(无需将 glob 转换为正则表达式)来匹配测试数据并返回有效条目?
一个要求:Java 1.6
最佳答案
如果你有 Java 7 可以使用 FileSystem.getPathMatcher
:
final PathMatcher matcher = FileSystem.getPathMatcher("glob:**/*.txt");
这需要将您的字符串转换为 Path
的实例:
final Path myPath = Paths.get("/foo/bar.txt");
对于早期版本的 Java,您可能会从 Apache Commons 的 WildcardFileFilter
中获得一些帮助。 .您也可以尝试从 Spring 的 AntPathMatcher
中窃取一些代码。 - 虽然这非常接近 glob-to-regex 方法。
关于java - 在 Java 中使用 glob 匹配路径字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677662/