Я пытаюсь найти регулярное выражение Java, которое будет соответствовать имени файла, только если оно имеет допустимое расширение. Например, он должен соответствовать «foo.bar» и «foo.b», но не «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 false", но вместо этого оно напечатает false для всех 4 случаев Куда я иду не так?
Ура,
Дон