我们有:
Path path = Paths.get("C:\\1.txt");
以下代码打印“true”:
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("regex:.*");
System.out.println(matcher.matches(path));
但以下代码打印“false”:
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*");
System.out.println(matcher.matches(path));
为什么呢?
我希望两种方法都有true
。
根据Glob page from Wikipedia,通配符*
表示:
匹配任意数量的任何字符,包括无
详细信息:
答案 0 :(得分:1)
正如@ T.J Crowder所说,你应该好好接受这个:
PathMatcher matcher2 = FileSystems.getDefault().getPathMatcher("glob:**");
System.out.println(matcher2.matches(path));
有关详细信息,请参阅this,其中包含:
**字符匹配跨越目录的零个或多个字符 边界。