Bonjour à tous, je viens vers vous car j'ai un petit problème, je voulais savoir si on pouvais mettre des variables dans des Regexp ?
Je m'explique, j'ai une chaine de caractère de la forme (par exemple) :
Je cherche à remplacer en "un seul traitement" AB****01 par CD****02 (par exemple), les * étant n'importe quel caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part XX AB****01 TOTO777
A l'heure actuelle je fais :
Et moi j'aimerai plutôt quelque chose de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 set ligne_tmp "XX AB****01 TOTO777" if {[regexp {(\mAB)(.+)(01\M)} $ligne_tmp tout motdeb motmil motfin] == 1} { set motdeb2 "CD" set motfin2 "02" regsub "$motdeb$motmil$motfin" $ligne_tmp "$motdeb2$motmil$motfin2" ligne_tmp }
J'ai besoin de ça car je vais récupérer les substitutions dans un fichier texte de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 set ligne_tmp "XX AB****01 TOTO777" set mot1 "AB" set mot2 "01" if {[regexp {(\m$mot1)(.+)($mot2\M)} $ligne_tmp tout motdeb motmil motfin] == 1} { set motdeb2 "CD" set motfin2 "02" regsub "$motdeb$motmil$motfin" $ligne_tmp "$motdeb2$motmil$motfin2" ligne_tmp }
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /AB....01/CD....02/ /EF....12/GH....34/
Connaissez-vous une solution svp ?
Merci d'avance.
Partager