Bonjour !
Je teste, via le script ci-dessous, le contenu de deux variables par le biais d'expressions régulières. Le but de la manip est de s'assurer, dans le cadre d'un gros programme, que le contenu des deux variables correspond bien aux motifs indiqués dans les expressions régulières.
Voici le code :
Tant que je donne comme valeurs des chaînes ou nombres correspondant aux motifs recherchés, ça fonctionne, le test des 2 if renvoie VRAI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #!/usr/bin/perl -w use strict; my ($alpha, $num); $alpha = "de"; $num = 10; # test de valeur dans $alpha (doit être 'ab', 'bc', 'cd' ou 'de') if (! $alpha || $alpha !~ /^ab|bc|cd|de$/) { print "\$alpha vide ou motif \"$alpha\" non trouvé\n"; } else { print "motif \"$alpha\" concorde, ok\n"; } # test de valeur dans $num (doit être compris entre 1 et 10 inclus) if (! $num || $num !~ /^1|2|3|4|5|6|7|8|9|10$/) { print "\$num vide ou motif \"$num\" non trouvé\n"; } else { print "motif \"$num\" concorde, ok\n"; }
Maintenant, si j'indique 1000 dans $num, ça renvoie VRAI également
De plus, indiquer "abc" dans $alpha retourne VRAI également.
Quelqu'un a une idée sur la question ???
Partager