PhiLho
Messages postés4Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention12 novembre 2008 2 oct. 2008 à 01:30
Pas mal, mais il y a un peu trop de captures (inutiles) et d'échappements (la plupart inutiles dans une classe de caractères : [^\\/:*?"|<>. ] est correct), compliquant inutilement l'expression.
De plus, je ne comprends pas la restriction contre le point en début de nom de fichier ou de répertoire, assez courant dans le monde Unix (fichiers cachés) et fort utilisé par les utilitaires venant de ce monde (Gimp, Scribus, Eclipse...).
Quelques bonnes astuces, en tout cas.
Autre cas non couvert : \a\b.c est valide. Et comme le fait remarquer zen69, les chemins a/b/c sont valables sous WinXP/Vista.
L'expression suivante semble couvrir mes remarques :
2 oct. 2008 à 01:30
De plus, je ne comprends pas la restriction contre le point en début de nom de fichier ou de répertoire, assez courant dans le monde Unix (fichiers cachés) et fort utilisé par les utilitaires venant de ce monde (Gimp, Scribus, Eclipse...).
Quelques bonnes astuces, en tout cas.
Autre cas non couvert : \a\b.c est valide. Et comme le fait remarquer zen69, les chemins a/b/c sont valables sous WinXP/Vista.
L'expression suivante semble couvrir mes remarques :
^(([a-zA-Z]:|(\\|/))?(\\|/))?(([^\\/:*?"|<> ]([^\\/:*?"|<> ]|[^\\/:*?"|<>]*[^\\/:*?"|<>. ])?)(\\|/))*([^\\/:*?"|<> ]([^\\/:*?"|<> ]|[^\\/:*?"|<>]*[^\\/:*?"|<>. ])?)?$
Je n'ai pas désactivé les captures (?:foo), pour simplifier...
17 sept. 2008 à 21:38