Bonjour à tous,
J’essaie de mettre en place une expression régulière afin de parcourir un ensemble de répertoire et de ne renvoyer que les arborescences qui correspondent au masque de cette même expression.
Les dossiers que je souhaite retenir ont le masque suivant :
EX chemin A : Y:\NOM_DU_PROJET\livré\V2003_MODULEA_2.1.0#0
Ex chemin B : Y:\NOM_DU_PROJET2\livré\V2005_MODULEB_2.2.0#0
Dans mon expression régulière je met aussi des captures car mon but est de consolider un fichier CSV avec :
Nom du projet || NOM Du module || Version de livraison
exemple avec le chemin A ci dessus:
NOM_DU_PROJET || MODULEA || V2003_MODULEA_2.1.0#0
Voici mon expression régulière :
Et voici maintenant mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Y:\\([a-zA-Z0-9_\040\.]+)\\.*(V2003|V2005[._]([a-zA-Z0-9_\040\.]+)[._][23]+\.[0-9]+\.[0-9]#[0-9]+)
La ligne suivante est renvoyée par l'expression régulière alors qu'elle ne correspond pas au masque que je désire ( il n'y a pas la version mais juste 2003) :
Y:\NOM_DU_PROJET3\V2003_MODULE\V2003
Chaîne 3: Y:\NOM_DU_PROJET3\V2003_MODULE\V2003
Résultat : vrai
Capture 1 : NOM_DU_PROJET3
Capture 2 : V2003
Je penses que le souci viens de cette partie :
Si je suppose bien, il fait un "ou" avec "V2003" et "V2005[._]([a-zA-Z0-9_\040\.]+)[._][23]+\.[0-9]+\.[0-9]#[0-9]+)."
Code : Sélectionner tout - Visualiser dans une fenêtre à part (V2003|V2005[._]([a-zA-Z0-9_\040\.]+)[._][23]+\.[0-9]+\.[0-9]#[0-9]+)
Alors que moi, je veux simplement faire un "ou" entre "V2003" ou "V2005" puis tout le reste de l'expression doit être appliqué...
J'ai tenté de corriger comme ça :
Il y a un peu de mieux car maintenant la livraison n'ayant pas le bon format n'est plus renvoyée mais la capture ne fonctionne plus correctement , j’obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ([V2003|V2005][._]([a-zA-Z0-9_\040\.]+)[._][23]+\.[0-9]+\.[0-9]#[0-9]+)
Chaîne 1: Y:\NOM_DU_PROJET\livré\V2005_MODULE_2.1.0#0
Résultat : vrai
Capture 1 : NOM_DU_PROJET
Capture 2 : 5_MODULE_2.1.0#0
Capture 3 : MODULE
Je pense qu'avec les [] et le "|" , il renvoi le caractère différent entre les deux chaines ...
Merci par avance de votre aide!
A plus tard,
Rémy
Partager