Expression reguliere
OrangeBleue
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
Donc est-il possible d'écrire une expression qui se comporterait différemment selon la valeur d'un groupe ?
par exemple :
ligne 1 : abc bleu
ligne 2 : xyz rouge
si c'est 'bleu' retourne ce qui est compris entre 'a' et 'c', donc 'b'
et si c'est 'rouge' retourne ce quui est compris entre 'x' et 'z', donc 'y'
Là je suis sec :-(
Merci pour votre aide !
Donc est-il possible d'écrire une expression qui se comporterait différemment selon la valeur d'un groupe ?
par exemple :
ligne 1 : abc bleu
ligne 2 : xyz rouge
si c'est 'bleu' retourne ce qui est compris entre 'a' et 'c', donc 'b'
et si c'est 'rouge' retourne ce quui est compris entre 'x' et 'z', donc 'y'
Là je suis sec :-(
Merci pour votre aide !
Configuration: Windows XP Firefox 2.0.0.14
6 réponses
-
Salut,
oui, c'est possible, mais avec quel outils/langage tu veux le faire -
par exemple avec perl
lami20j@debian:~/trash$ cat regex.txt ligne 1 : abc bleu ligne 2 : xyz rouge lami20j@debian:~/trash$ perl -ne 'print $1,"\n" if /.*\s\w(\w)\w\s+bleu/' regex.txt b lami20j@debian:~/trash$ perl -ne 'print $1,"\n" if /.*\s\w(\w)\w\s+rouge/' regex.txt y
-
merci pour ta réponse,
si je comprend bien il faut faire une expression pour le 'bleu' et une pour 'rouge'.
Mais n'y a-t-il pas moyen de n'écrire qu'une seule expression ?
Merci -
Salut,
lami20j@debian:~$ cat regex.txt ligne 1 : abc bleu ligne 2 : xyz rouge lami20j@debian:~$ perl -ne 'print $1,"\n" if /.*\s\w(\w)\w\s+(bleu|rouge)/' regex.txt b y
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Tu as une idée ?
J'ai plein d'idées môa, des fois bonnes des fois mauvaises ;-))
Tu joues à quoi? ;-)
Pourquoi n'exposes tout le problème d'un coup, au lieu de donner goutte à goutte?
-
Re,
root@debian:~# cat regex.txt ligne 1 : 1A abc bleu ligne 2 : xyz 2BC rouge root@debian:~# perl -ne 'print $1,"\n" if /.*:\s*(\w+)\s+(\w+)\s+(bleu)/' regex.txt 1A root@debian:~# perl -ne 'print $2,"\n" if /.*:\s*(\w+)\s+(\w+)\s+(rouge)/' regex.txt 2BC