| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Regular_expressions | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Une expression rationnelle (expression rationnelle pour faire court) permet aux dveloppeureuses de faire correspondre des chanes de caractres un modle, d'extraire des informations sur les sous-correspondances ou simplement de tester si la chane de caractres respecte ce modle. Les expressions rationnelles sont utilises dans de nombreux langages de programmation, et la syntaxe de JavaScript est inspire de Perl (angl.).
Vous tes encourages lire le guide des expressions rationnelles pour avoir un aperu des syntaxes d'expressions rationnelles disponibles et de leur fonctionnement.
Les expressions rationnelles (angl.) sont un concept important en thorie des langages formels. Elles permettent de dcrire un ensemble ventuellement infini de chanes de caractres (appel langage). Une expression rationnelle, en son cur, ncessite les fonctionnalits suivantes :
ab signifie le caractre a suivi du caractre b .a|b signifie soit a, soit b .a* signifie zro ou plusieurs caractres a .En supposant un alphabet fini (comme les 26 lettres de l'alphabet anglais, ou l'ensemble des caractres Unicode), tous les langages rguliers peuvent tre gnrs par les fonctionnalits ci-dessus. Bien sr, de nombreux modles sont trs fastidieux exprimer de cette manire (comme 10 chiffres ou un caractre qui n'est pas un espace ), donc les expressions rationnelles JavaScript incluent de nombreux raccourcis, prsents ci-dessous.
Note : Les expressions rationnelles JavaScript ne sont en fait pas rgulires, en raison de l'existence des rtro-rfrences (les expressions rationnelles doivent avoir des tats finis). Cependant, elles restent une fonctionnalit trs utile.
Une expression rationnelle est gnralement cre comme un littral en encadrant un motif avec des barres obliques (/) :
const regex1 = /ab+c/g;
Les expressions rationnelles peuvent galement tre cres avec le constructeur RegExp() :
const regex2 = new RegExp("ab+c", "g");
Elles n'ont pas de diffrences l'excution, bien qu'elles puissent avoir des implications sur les performances, la capacit d'analyse statique et l'ergonomie de l'criture avec l'chappement des caractres. Pour plus d'informations, voir la rfrence RegExp.
Les indicateurs sont des paramtres spciaux qui peuvent modifier la faon dont une expression rationnelle est interprte ou la faon dont elle interagit avec le texte d'entre. Chaque indicateur correspond une proprit d'accs sur l'objet RegExp.
| Indicateur | Description | Proprit correspondante |
|---|---|---|
d |
Gnre des indices pour les correspondances de sous-chanes de caractres. | hasIndices |
g |
Recherche globale. | global |
i |
Recherche insensible la casse. | ignoreCase |
m |
Fait en sorte que ^ et $ correspondent au dbut et la fin de chaque ligne au lieu de ceux de l'ensemble de la chane de caractres. |
multiline |
s |
Permet . de correspondre aux caractres de nouvelle ligne. |
dotAll |
u |
Unicode ; traite un motif comme une squence de points de code Unicode. | unicode |
v |
Une amlioration du mode u avec plus de fonctionnalits Unicode. |
unicodeSets |
y |
Effectue une recherche collante qui correspond partir de la position actuelle dans la chane de caractres cible. | sticky |
Les indicateurs i, m et s peuvent tre activs ou dsactivs pour des parties spcifiques d'une expression rationnelle en utilisant la syntaxe de modificateur.
Les sections ci-dessous rpertorient toutes les syntaxes d'expressions rationnelles disponibles, regroupes par leur nature syntaxique.
Les assertions sont des constructions qui vrifient si la chane de caractres satisfait une certaine condition la position dfinie, sans consommer de caractres. Les assertions ne peuvent pas tre quantifies.
\A, \z, \ZAssure que la position actuelle dans la chane de caractres se trouve strictement au dbut ou la fin de la chane de caractres entire (\Z autorise galement un retour la ligne en fin de chane de caractres), quelle que soit la prsence de l'indicateur m.
^, $Assure que la position actuelle est le dbut ou la fin de l'entre, ou le dbut ou la fin d'une ligne si l'indicateur m est activ.
(?=...), (?!...)Assure que la position actuelle est suivie ou non suivie par un certain motif.
(?<=...), (?<!...)Assure que la position actuelle est prcde ou non prcde par un certain motif.
\b, \BAssure que la position actuelle est une limite de mot.
Les atomes sont les units les plus lmentaires d'une expression rgulire. Chaque atome consomme un ou plusieurs caractres dans la chane de caractres, et choue soit la correspondance, soit permet au motif de continuer correspondre avec l'atome suivant.
\1, \2Correspond un sous-motif prcdemment captur avec un groupe capturant.
(...)Correspond un sous-motif et mmorise des informations sur la correspondance.
[...], [^...]Correspond n'importe quel caractre faisant partie ou non d'un ensemble de caractres. Lorsque l'indicateur v est activ, il peut galement tre utilis pour correspondre des chanes de caractres de longueur finie.
\d, \D, \w, \W, \s, \SCorrespond n'importe quel caractre faisant partie ou non d'un ensemble de caractres prdfini.
\n, \u{...}Correspond un caractre qui peut ne pas pouvoir tre reprsent de manire pratique sous sa forme littrale.
a, bCorrespond un caractre spcifique.
(?ims-ims:...)Remplace les paramtres d'indicateur dans une partie spcifique d'une expression rgulire.
\k<name>Correspond un sous-motif prcdemment captur avec un groupe capturant nomm.
(?<name>...)Correspond un sous-motif et mmorise des informations sur la correspondance. Le groupe peut ensuite tre identifi par un nom personnalis au lieu de son index dans le motif.
(?:...)Correspond un sous-motif sans mmoriser d'informations sur la correspondance.
\p{...}, \P{...}Correspond un ensemble de caractres dfini par une proprit Unicode. Lorsque l'indicateur v est activ, il peut galement tre utilis pour correspondre des chanes de caractres de longueur finie.
.Correspond tout caractre sauf les terminateurs de ligne, moins que l'indicateur s soit dfini.
Ces fonctionnalits ne dfinissent aucun motif elles seules, mais servent composer des motifs.
|Correspond l'une des alternatives spares par le caractre |.
*, +, ?, {n}, {n,}, {n,m}Correspond un atome un certain nombre de fois.
Les squences d'chappement des expressions rationnelles dsignent toute syntaxe forme de \ suivi d'un ou plusieurs caractres. Elles peuvent avoir des fonctions trs diffrentes selon ce qui suit \. Voici la liste de toutes les squences d'chappement valides :
| Squence d'chappement | Suivie de | Signification |
|---|---|---|
\A |
Aucun | Assertion de limite de tampon |
\B |
Aucun | Assertion ngative de limite de mot |
\D |
Aucun | Squence de classe de caractres chapp reprsentant les caractres non numriques |
\P |
{, une proprit et/ou une valeur Unicode, puis } |
Squence de classe de caractres Unicode chapp reprsentant les caractres sans la proprit Unicode indique |
\S |
Aucun | Squence de classe de caractres chapp reprsentant les caractres qui ne sont pas des espaces |
\W |
Aucun | Squence de classe de caractres chapp reprsentant les caractres qui ne sont pas des caractres de mot |
\Z |
Aucun | Assertion de limite de tampon |
\b |
Aucun | Assertion de limite de mot ; dans les classes de caractres, reprsente U+0008 (RETOUR ARRIRE) |
\c |
Une lettre de A Z ou de a z |
Une squence de caractre chapp reprsentant le caractre de contrle dont la valeur correspond celle de la lettre modulo 32 |
\d |
Aucun | Squence de classe de caractres chapp reprsentant les chiffres (0 9) |
\f |
Aucun | Squence de caractre chapp reprsentant U+000C (SAUT DE PAGE) |
\k |
<, un identifiant, puis > |
Une rtro-rfrence nomme |
\n |
Aucun | Squence de caractre chapp reprsentant U+000A (SAUT DE LIGNE) |
\p |
{, une proprit et/ou une valeur Unicode, puis } |
Squence de classe de caractres Unicode chapp reprsentant les caractres associs la proprit Unicode indique |
\q |
{, une chane de caractres, puis } |
Valide uniquement dans les classes de caractres du mode v ; reprsente littralement la chane de caractres reconnatre |
\r |
Aucun | Squence de caractre chapp reprsentant U+000D (RETOUR CHARIOT) |
\s |
Aucun | Squence de classe de caractres chapp reprsentant les caractres d'espacement |
\t |
Aucun | Squence de caractre chapp reprsentant U+0009 (TABULATION) |
\u |
4 chiffres hexadcimaux ; ou {, de 1 6 chiffres hexadcimaux, puis } |
Squence de caractre chapp reprsentant le caractre associ au point de code indiqu |
\v |
Aucun | Squence de caractre chapp reprsentant U+000B (TABULATION VERTICALE) |
\w |
Aucun | Squence de classe de caractres chapp reprsentant les caractres de mot (A Z, a z, 0 9, _) |
\x |
2 chiffres hexadcimaux | Squence de caractre chapp reprsentant le caractre associ la valeur indique |
\z |
Aucun | Assertion de limite de tampon |
\0 |
Aucun | Squence de caractre chapp reprsentant U+0000 (NUL) |
\ suivi de 0 et d'un autre chiffre forme une squence d'chappement octale historique, interdite en mode sensible l'Unicode. \ suivi de toute autre squence de chiffres forme une rtro-rfrence.
En outre, \ peut tre suivi de certains caractres qui ne sont ni des lettres ni des chiffres, auquel cas la squence d'chappement est toujours une squence de caractre chapp reprsentant le caractre chapp lui-mme :
\$, \(, \), \*, \+, \., \/, \?, \[, \\, \], \^, \{, \|, \} : valides partout\- : valide uniquement dans les classes de caractres\!, \#, \%, \&, \,, \:, \;, \<, \=, \>, \@, \`, \~ : valides uniquement dans les classes de caractres du mode vLes autres caractres ASCII, savoir l'espace, ", ', _ et toute lettre non mentionne ci-dessus, ne constituent pas des squences d'chappement valides. En mode non sensible l'Unicode, les squences d'chappement qui ne figurent pas ci-dessus deviennent des chappements d'identit : elles reprsentent le caractre qui suit la barre oblique inverse. Par exemple, \a reprsente le caractre a. Ce comportement limite la possibilit d'introduire de nouvelles squences d'chappement sans provoquer de problmes de compatibilit ascendante, et interdit donc ces squences en mode sensible Unicode.
RegExpCette page a t modifie le 9 oct. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |