【发布时间】:2010-09-19 01:17:58
【问题描述】:
我正在尝试提出一个 Java 正则表达式,它仅在文件名具有有效扩展名的情况下才会匹配。例如,它应该匹配“foo.bar”和“foo.b”,但都不匹配“foo”。也不是“foo”。
我写了下面的测试程序
public static void main(String[] args) {
Pattern fileExtensionPattern = Pattern.compile("\\.\\w+\\z");
boolean one = fileExtensionPattern.matcher("foo.bar").matches();
boolean two = fileExtensionPattern.matcher("foo.b").matches();
boolean three = fileExtensionPattern.matcher("foo.").matches();
boolean four = fileExtensionPattern.matcher("foo").matches();
System.out.println(one + " " + two + " " + three + " " + four);
}
我希望这会打印“true true false false”,但它会打印所有 4 个案例的 false。我哪里错了?
干杯, 唐
【问题讨论】: