\ | Correspond selon les règles suivantes :
Une barre oblique inversée (backslash) précédant un caractère non spécial indique que le caractère qui suit est spécial et qu'il ne doit pas être interprété directement. Ainsi, un 'b ', sans \ avant, correspondra pour les 'b' minuscules quel que soit leur position. En revanche '\b ' ne correspondra à aucun caractère mais indique un caractère de fin de mot.
Un backslash précédant un caractère spécial indique que le caractère qui suit doit être interprété littéralement (et non pas comme un caractère spécial). Ainsi, le motif /a*/ utilise le caractère spécial '* ' pour correspondre à 0 ou plusieurs 'a'. Le motif /a\*/ , au contraire, rend '* ' non-spécial pour correspondre aux chaînes de caractères qui comportent la lettre a et une astérisque, comme 'a*'.
Il ne faut pas oublier d'échapper le caractère \ car lui-même est un caractère d'échappement dans les chaînes de caractères. |
^ | Correspond au début la séquence.
Ainsi, /^A/ ne correspond pas au 'A' de "un A", mais correspond au 'A' de "Arceau".
Le caractère '^ ' possède un sens différent lorsqu'il est utilisé dans un motif d'ensemble de caractères. Voir les compléments sur les ensembles de caractères pour plus de détails et d'exemples. |
$ | Correspond à la fin de la séquence. Ainsi, /t$/ ne correspond pas au 't' de "printemps", mais correspond au 't' de "aliment". |
* | Correspond à l'expression précédente qui est répétée 0 ou plusieurs fois. Équivalent à {0,} Ainsi, /bo*/ correspond à 'boo' dans "Un booléen" et à 'b' dans "Un bateau bleu", mais ne correspond à rien dans "Ce matin". |
+ | Correspond à l'expression précédente qui est répétée une ou plusieurs fois. C'est équivalent à {1,} . Ainsi, /a+/ correspond au 'a' dans "maison" et à tous les 'a' dans "maaaaaaison" mais ne correspond à rien dans "mission". |
? | Correspond à l'expression précédente qui est présente une fois ou pas du tout. C'est équivalent à {0,1} .
Ainsi, /e?le?/ correspond au 'el' dans "gel" et au 'le' dans "angle" mais aussi au 'l' dans "Oslo".
S'il est utilisé immédiatement après l'un des quantificateurs : *, +, ?, ou {}, il rend le quantificateur moins « gourmand » auquel cas le moins de caractères correspond (le comportement par défaut, « gourmand », permettant de faire correspondre le plus de caractères possible). Par exemple /\d+/ utilisée avec "123abc" fait correspondre "123". Utiliser /\d+?/ à la même chaîne de caractères fait correspondre "1". |
. | Par défaut, (Le point) correspond à n'importe quel caractère excepté un caractère de saut de ligne. Ainsi, /.n/ correspond à 'un' et 'en' dans "Un baobab nain en cours de croissance" mais pas à 'nain'. Si le marqueur s (dotAll) est utilisé, le point correspondra également aux caractères de saut de ligne. |
x|y | Correspond à 'x' ou 'y'. Ainsi, /vert|rouge/ correspond à 'vert' dans "feu vert" et à 'rouge' dans "feu rouge". |
{n} | Correspond pour exactement n occurences de l'expression précédente. N doit être un entier positif.
Ainsi, /a{2}/ ne correspond pas au 'a' de "Mozilla" mais correspond à tous les 'a' de "Mozilaa" et aux deux premiers 'a' de "Mozillaaa". |
{n,} | Correspond lorsqu'il y a au moins n occurences de l'expression précédente. n doit être un entier positif. Par exemple /a{2,}/ correspondra à "aa" ou à "aaa" ou encore à "aaaa" mais pas à "a" . |
{n,m} | Lorsque n et m sont des entiers positifs, cela correspond à au moins n occurences de l'expression précédente et à au plus m occurrences. Lorsque m n'est pas utilisé, la valeur par défaut correspondante sera l'infini. Ainsi, /a{1,3}/ ne correspond à rien dans "Mozill", au 'a' de "Mozilla", au deux premiers 'a' de "Mozillaa" et au trois premiers 'a' de "Mozillaaaaa". Pour ce dernier exemple, on doit noter que le correspondance ne se fait que sur "aaa" bien qu'il y ait plus de 'a' dans la chaîne de caractères. |
[xyz] | Un ensemble de caractère. Ce type de motif correspond pour n'importe quel caractètre présent entre les crochets, y compris les séquences d'échappement. Les caractères spéciaux comme le point (.) et l'astérisque ne sont pas considérés comme spéciaux au sein d'un ensemble et n'ont donc pas besoin d'être échappés. Il est possible de donner un ensemble sur un intervalle de caractères en utilisant un tiret (-), comme le montre l'exemple qui suit.
Le motif [a-d] , aura les mêmes correspondances que [abcd] , correspondant au 'b' de "bulle" et au 'c' de "ciel". Les motifis /[a-z.]+/ et /[\w.]+/ correspondront pour la chaîne entirère : "Adre.ss.e". |
[^xyz] | Exclusion d'un ensemble de caractères. Cela correspond à tout ce qui n'est pas compris entre crochets. Il est possible de fournir un intervalle de caractères en utilisant un tiret (-). Les autres règles qui s'appliquent pour l'ensemble de caractères (ci-avant) s'appliquent également ici. Par exemple, [^abc] est équivalent à [^a-c] . Ils correspondent à 'u' dans "bulle" et à 'i' dans "ciel". |
[\b] | Correspond pour un retour arrière (U+0008). (À ne pas confondre avec \b .) |
\b | Correspond à la position d'une limite de mot. Une limite de mot correspond à la position où un caractère d'un mot n'est pas suivi ou précédé d'un autre caractère de mot. Il faut savoir que la limite correspondante n'est pas incluse dans le résultat. Autrement dit, la longueur d'une telle correspondance est nulle. (À ne pas confondre avec [\b] .) Exemples :
/\bm/ correspond au 'm' dans "mignon" ;
/no\b/ ne correspond pas au 'no' de "mignon" car 'no' est suivi de 'n' qui n'est pas un caractère de limite de mot;
/non\b/ correspond au 'non' de "mignon" car 'non' représente la fin de la chaîne de caractère et n'est donc pas suivi par un caractère de mot.
/\w\b\w/ ne correspondra jamais à quoi que ce soit car un caractère de mot ne peut pas être suivi à la fois par un caractère de mot et un caractère n'étant pas un caractère de mot. |
\B | Correspond à une "non-limite de mot". Cela correspond pour les cas suivants : - Avant le premier caractère d'une chaîne de caractères
- Après le dernier caractère d'une chaîne de caractères
- Entre deux caractères de mot
- Entre deux caractères qui ne sont pas des caractères de mot
- Avec la chaîne vide.
Ainsi, /\B../ correspond au 'oo' de "football" et /e\B./ correspond au 'er' dans "une mer " |
\d | Correspond à un chiffre et est équivalent à [0-9] . Ainsi, /\d/ ou /[0-9]/ correspond à '2' dans "H2O est la molécule de l'eau". | \D | Correspond à tout caractère qui n'est pas un chiffre et est équivalent à[^0-9] . Ainsi, /\D/ ou /[^0-9]/ correspond à 'H' dans "H2O est la molécule de l'eau". |
\s | Correspond à un blanc (cela comprend les espace, tabulation, saut de ligne ou saut de page). Ainsi, /\s\w*/ correspond à ' toto' dans "truc toto". |
\S | Correspond à un caractère qui n'est pas un blanc. Ainsi, /\S\w*/ correspond à 'truc' dans "truc toto". |
\w | Correspond à n'importe quel caractère alphanumérique, y compris le tiret bas. C'est équivalent à [A-Za-z0-9_] . Ainsi, /\w/ correspond à 'l' dans "licorne", à '5' dans "5,28€", et à '3' dans "3D." |
\W | Correspond à n'importe quel caractère n'étant pas un caractère de mot. Cela est équivalent à [^A-Za-z0-9_] . Ainsi, /\W/ ou /[^A-Za-z0-9_]/ correspond à '%' dans "50%." |