J'essaye de trouver une regex Java qui ne correspondra à un nom de fichier que s'il a une extension valide. Par exemple, il devrait correspondre à "foo.bar" et "foo.b", mais ni "foo". ni "foo".Extension de fichier Java regex
J'ai écrit le programme de test suivant
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);
}
Je m'y attendais pour imprimer "true true false false", mais il imprime faux pour les 4 cas. Où vais-je mal?
vôtre, Don
Cela m'a frappé hier. – agnul
En outre, Don pourrait envisager d'emballer son regex dans un FileFilter: http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileFilter.html –