expressions régulières


(source : http://www.mines.inpl-nancy.fr/~tisseran/cours/ )

Syntaxe des expressions régulières

Une expression régulière est une chaîne de caractères contenant des "méta-caractères" et des caractères standards. En voici une brève description simplifiée :

^
$
Les symboles ^ et $ indiquent respectivement le début ou la fin d'une chaîne.
Exemples : "^nonobstant": chaîne qui commence par "nonobstant";
"fin$": chaîne qui se termine par "fin"
"^chaîne$": chaîne qui commence et se termine par "chaîne"
motif  
.
L'écriture "abc" indique la présence du motif "abc".
Le point "." représente un caractère quelconque.
"ab." est alors le modèle des chaînes aba, abb, abc, abd,...
*  
+  
?
Les symboles de cardinalité   * zéro ou plus,   + un ou plus,   ? un ou zéro,   permettent de préciser les répétitions d'un même motif.
Exemples : "abc+" est le motif qui contient "ab" suivi de un ou plusieurs "c" ("abc", "abcc" etc..)
"abc*" : motif qui contient "ab" suivi de zéro ou plusieurs "c" ("ab", "abc" etc..)
"abc?" : motif qui contient "ab" suivi de un ou zero "c" ("ab" ou "abc")
"^abc+" : motif qui commence par "ab", suivi de un ou plusieurs "c" ("abc", "abcc" etc..)
{   }

Les accolades permettent de donner des limites de répétitions.
"abc{2}": chaîne qui contient "ab" suivi de deux "c" ("abcc")
"abc{2,}" : chaîne qui contient "ab" suivi de deux "c" ou plus ("abcc" etc..)
"abc{3,5}": chaîne qui contient "ab" suivi de 3, 4 ou 5 "c" ("abccc" .. "abccccc")

(   ) Les parenthèses servent comme d'habitude à regrouper des séquences.
"a(bc)*": chaîne qui contient "a" suivi de zéro ou plus "bc" : a abc abcbc...
| La barre verticale | se comporte en tant qu'opérateur OU
"(a|b)*": chaine qui contient une suite de "a" ou de "b" : aababbba
[   ] Les crochets définissent une liste de caractères autorisés .
"[ab]" : chaîne qui contient un "a" ou un "b"
Le caractère - définit un intervalle. "[a-z]" : chaîne qui contient un caractère compris entre "a" et "z"
[^ ] définit une liste de caractères interdits .
le caractère ^ après le premier crochet définit une négation (ce ^ entre crochets a un emploi différent du ^ indiquant le début de chaîne). "[^a-zA-Z]" : chaîne qui ne commence pas par une lettre
\ Pour un caractère faisant partie des caractères spéciaux (.^()[]$+-*?|\), il suffit de le faire précéder d'un backslash "\" (sauf dans les expressions entre crochets). La caractère backslash doit donc être doublé.