Problème avec une expression rationnelle.
Salut!:D
En parsant la chaine:
Code:
1 2
| String regEx=new String("le premier PATH est : C:/ProgramFile/Bidon/Azerty/Uiop/fichier.txt" +
"le second PATH est: D:/Program/Rien/fichier.txt"); |
ainsi:
Code:
1 2 3 4 5 6 7 8 9
| Pattern modele=Pattern.compile("([CD]:/)((\\w+/)*)((\\w+)\\.txt)");
Matcher moteur=modele.matcher(regEx);
while(moteur.find()){
System.out.println(moteur.group(0));
System.out.println("le lecteur est: "+moteur.group(1));
System.out.println("le chemin relatif est: "+moteur.group(2));
System.out.println("le nom du fichier est: "+moteur.group(3));
System.out.println(moteur.group(4));
} |
le résultat est:
Code:
1 2 3 4 5 6 7 8 9 10
| C:/ProgramFile/Bidon/Azerty/Uiop/fichier.txt
le lecteur est: C:/
le chemin relatif est: ProgramFile/Bidon/Azerty/Uiop/
le nom du fichier est: Uiop/
fichier.txt
D:/Program/Rien/c.txt
le lecteur est: D:/
le chemin relatif est: Program/Rien/
le nom du fichier est: Rien/
c.txt |
.:aie:
Alors que les groupes sont bien indiqués dans l'expression rationnelle:
groupe 1: ([CD]:/) correspondant au lecteur
groupe 2: ((\\w+/)*) correspondant au chemin
groupe 3: ((\\w+)\\.txt) correspondant au fichier
Ou est l'erreur?
Merci.:D