Salut amélie,
Si les liens ci-dessus ne t'aide pas, voici en deux mots ce que sont les expressions rationnelles, plus connues sous le nom d'expressions régulières (Regular Expressions ou RegEx en anglais).
Les expressions régulières sont un outil puissant que fournissent certains langages de programmations (PERL était le plus reconnu).
Les regex sont une sorte de motif (un format) qu'il faut appliquer à une chaine de caractères.
Voici un exemple d'utilisation simple :
my $variable = "01-01-2000";
if ( $variable =~ m/2000/ ) {
print "La date contient la valeur : 2000";
}
L'instruction de correspondance (match) est :
m//;
Elle est utilisée avec l'operateur :
=~
qui correspond a :
LA_VARIABLE_CONCERNEE =~ (correspond-t-elle) m/AU_MOTIF/;
La regex est : 2000
(ce qui se trouve entre les deux slashs de : m//)
Dans une regex, chaque caractère correspond à sa valeur. Ici, "2000" cherche le caractères "2" puis "0" et "0" enfin "0".
Si ces caractères sont présents dans la chaine $variable alors la condition renvoie vrai.
Voici un autre exemple plus complexe et plus intéressant :
my $variable = "01-01-2000";
if ( $variable =~ m/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/ ) {
print "La date : ". $1 ."/". $2 "/". $3 ." est au bon format : jj-mm-aaaa";
}
La regex est ici : ^([0-9]{2})-([0-9]{2})-([0-9]{4})$
Maintenant interviennent le puissants Meta-Caractères.
Certains caractères, contrairement aux autres, ne valent pas leur valeur dans le motif, mais ont une signification particulière en fonction d'où ils sont utilisés.
^ ---> Utilisé un début de regex, il indique que le motif doit se trouver en début de chaine.
$ ---> Utilisé un fin de regex, il indique que le motif doit se trouver en fin de chaine.
\d ---> correspond à un chiffre (digit) on aurait pu l'écrire [0-9] (un chiffre compris entre 0 et 9).
{2} ---> indique le nombre de fois que doit se répéter le caractère (ici 2, on cherche deux chiffres).
() ---> enfin les parenthèses. Elles permettent de mémoriser la valeur trouvée entre elles afin de les utiliser plus tard grace à $1, $2, $3... respectivement à l'ordre d'apparitions des parenthèses.
- ---> Le tiret en dehors de crochets correspond à sa valeur (tiret ou signe moins).
Dans cette regex, on recherche en début de chaine : 2 chiffres (mis en mémoire dans $1), suivi d'un tiret et de 2 autres chiffres (mis également en mémoire dans $2), un tiret, et enfin 4 chiffres (mis en mémoire dans $3) qui finissent la chaine.
(Le format : 01-01-2000 en gros)
Ici, tu trouveras la doc française complète des regex en PERL : http://www.mongueurs.net/perlfr/perlre.html
Et ici, le summum des regex par japhy (en anglais) : http://japhy.perlmonk.org/book/
-= Bobinours - =-