Regexp Java pr vérifier un nom de fichier

Fermé
ttben1503 - 19 mai 2012 à 17:03
 Utilisateur anonyme - 19 mai 2012 à 20:33
Bonjour à tous !

Je suis un peu novice en Java, et dans le cadre de mes études, je dois écrire un petit bout de code Java.

Parmi ce bout de code, il y a le fait de vérifier qu'un nom de fichier est de la forme :

" CTX[un nbr compris entre 1 et 12]-[un chiffre].[un chiffre].[un chiffre]"

Exemple :

CTX1-3.0.0 est correct
CTX0-2.0.1 est incorrect
CTX11-4.2.1 est correct.

J'ai regardé un peu les docs, tuto et autres, mais je ne vois pas en quoi ma regexp est fausse :

(extension[0] = le nom du fichier )

Pattern pattern = Pattern.compile(extension[0]);
Matcher matcher = pattern.matcher("CTX[0-12]-[0-9]\.[0-9]\.[0-9]");


J'ai bien échappé le joker '.' et Eclipse me sort "invalid sequence"

Auriez vous une idée ?

Merci d'avance !

Cordialement,
A voir également:

2 réponses

Salut,

Avant de voir ce qui cloche il faut que tu inverses le nom du fichier et le motif

Pattern pattern = Pattern.compile("CTX[0-12]-[0-9]\.[0-9]\.[0-9]"); // motif 
Matcher matcher = pattern.matcher(extension[0]); 


Concernant "invalid sequence" ca signifie que escape n'est pas correcte.
Pour que ce soit possible, il faudrait \\. mais ce serait pour remplacer n'importe quel caractère, donc pas de \. mais . tout seul.

Ensuite, tu dis "CTX[un nbr compris entre 1 et 12]" et pour le motif CTX[0-12]
Cordialement,

Dan
--
Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
0
Ps,

Trop tard pour modifier donc ps:

Ensuite, tu dis "CTX[un nbr compris entre 1 et 12]" et pour le motif CTX[0-12] et comme je pense qu'il s'agit d'un n° de mois c'est le motif qu'il faut modifier !!! CTX[1-12]

Il serait bon de contrôler que le nom du fichier commence bien par CTX en mettant un ^ devant CTX soit "^CTX...

Enfin, il faut afficher le résultat: c'est bon ou pas bon ?
À ton avis que faut-il faire (pas pour afficher mais pour savoir si c'est OK) ?
Cordialement,

Dan
Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
0