Il est connu que nous pouvons faire des recherches de chaînes de caractères dans un texte. On le fait depuis les débuts de l'informatique moderne. Toutefois il arrive que nous devions rechercher non pas une simple chaîne mais un patron. Par exemple, quelque chose qui ressemble à:
un numéro de téléphone
un code permanent
une adresse électronique
etc
Pour fabriquer une expression régulière nous utiliserons des «méta caractères» ayant des significations spéciales.
Code | Signification |
---|---|
\ | Le caractère qui suit doit être interprété comme un caractère spécial ou comme le caractère lui-même. On l'utilisera pour les caractères suivant: ?, /, \, [, ], {, }, (, ), +, *, | |
^ | Début de la chaîne de caractère. |
$ | Fin de la chaîne de caractère. |
* | Ce qui précède peut être répété de 0 à N fois. |
+ | Ce qui précède peut être répété de 1 à N fois. |
? | Ce qui précède peut être répété 0 ou 1 fois. |
. | Le point représente n'importe quel caractère sauf une fin de ligne. |
(X) | On doit mémoriser ce qu'il y a entre les parenthèses. |
X|Y | Soit la séquence X soit Y. |
{N} | Ce qui précède répété exactement N fois. |
{N.} | Ce qui précède répété au moins N fois. |
{N.M} | Ce qui précède répété au moins N fois et au plus M fois. |
[XYZ] | N'importe quel caractère choisi parmi la liste fournie. |
[^XYZ] | N'importe quel caractère sauf ceux mentionnés. |
[X-Z] | N'importe quel caractère entre les caractères mentionnés. |
\b | Une frontière de mot |
\B | Ailleurs qu'à une frontière de mot. |
\cX | Caractère de contrôle X. |
\d | Un chiffre quelconque [0-9]. |
\D | Tout sauf un chiffre [^0-9]. |
\f | Un saut de page. |
\n | Une fin de ligne. |
\r | Un retour de chariot. |
\s | Un caractère d'espacement [ \f\n\r\t\v] |
\S | Tout sauf un caractère d'espacement [^ \f\n\r\t\v] |
\t | Une tabulation horizontale. |
\v | Une tabulation verticale. |
\w | Un caractère alphanumérique, un blanc ou un souligné. [A-Za-z0-9 _] |
\W | Tout sauf un caractère alphanumérique [^A-Za-z0-9 _] |
\N | Référence arrière à la dernière expression entre parenthèses |
\oXX | Une valeur représentée en octal. |
\hXX | Une valeur représentée en hexadécimal. |
Il y a deux façons de créer une expression régulière:
Comme une chaîne de caractères mais avec le délimiteur
barre oblique (/).
Par exemple: er = /[A-Z]/gi;
En utilisant le constructeur des expressions régulières (RegExp).
Par exemple: er = new RegExp('[A-Z]', 'gi');
Voici quelques exemples d'expressions régulières.
\d{3}-\d{4} | Un numéro de téléphone simple (en Amérique du nord ;-) |
[A-Z]{4}\d{8} | Un code permanent |
[A-Z][0-9][A-Z] [0-9][A-Z][0-9] | Un code postal canadien |
[A-Fa-f0-9]+ | Un nombre hexadécimal |
Cette méthode permet de compiler une expression régulière qui sera utilisée plusieurs fois dans un script. Les modificateurs sont:
Cette méthode effectue la recherche d'une expression régulière dans un texte. En cas d'échec elle retourne la valeur null. Sinon elle retourne un tableau des chaînes entre parenthèses trouvées.
Cette méthode retourne la liste (tableau) des occurrences trouvées ou null.
Cette méthode recherche une expression régulière et la remplace par une chaîne donnée.
Cette méthode recherche une expression régulière dans un texte. Elle retourne l'index du premier groupe trouvé ou -1 en cas d'échec.
Cette méthode découpe un texte selon une expression régulière et retourne un tableau contenant les sous-chaînes. On peut donner une limite à la longueur du tableau.
Cette méthode recherche l'expression régulière fournie dans un texte. Elle retourne true ou false.
Les 9 premières sous-chaînes entre parenthèses..
Le constructeur de l'objet RegExp.
Présence du modificateur g.
Présence du modificateur i.
Le texte sur lequel porte l'expression régulière.
Point de départ de la recherche ou des recherches subséquentes.
Derniers caractères ayant donné lieu à une correspondance.
La dernière sous-chaîne entre parenthèses.
La chaîne de caractères précédant la plus récente correspondance.
true ou false selon que la recherche s'effectue sur plusieurs lignes ou sur une seule.
Prototype de la classe RegExp.
La chaîne de caractères quit suit la plus récente correspondance.
Valeur de l'expression régulière.