Assertions d'expressions régulières

Assertions RegExp

Assertions correspondent à Limites et Lookarounds :

Limites de chaîne et Limites de mots.

Lookarounds : Lookaheads et Lookbehinds.

// Correspond au début de la chaîne
const pattern = /^formation-ti.org/;

// Correspond à la fin de la chaîne
const pattern = /formation-ti.org$/;

Assertions Regex JavaScript

Révisé en juillet 2025

Syntaxe Nom Description
^ Limite de chaîne Correspond au début d'une chaîne
$ Limite de chaîne Correspond à la fin d'une chaîne
\b Limite de mot Correspond au début ou à la fin d'un mot
\B Limite de mot Correspond à l'intérieur d'un mot
(?=...) Lookahead Correspond à la chaîne suivante
(?!...) Lookahead Correspond à tout sauf la chaîne suivante
(?<=...) Lookbehind Correspond à la chaîne précédente
(?<!...) Lookbehind Correspond à tout sauf la chaîne précédente

Métacaractère RegExp ^

Le métacaractère ^ correspond au début d'une chaîne.

Exemples

Testez si une chaîne commence par formation-ti.org :

const pattern = /^formation-ti.org/;
let text = "formation-ti.org Tutoriel";

let result = pattern.test(text); // true

Essayez-le vous-même »

const pattern = /^formation-ti.org/;
let text = "Bonjour formation-ti.org";

let result = pattern.test(text); // false

Essayez-le vous-même »


Métacaractère RegExp $

Le métacaractère $ correspond à la fin d'une chaîne.

Testez si une chaîne se termine par formation-ti.org :

const pattern = /formation-ti.org$/;
let text = "Bonjour formation-ti.org";

let result = pattern.test(text); // true
Essayez-le vous-même »
const pattern = /formation-ti.org$/;
let text = "formation-ti.org tutoriel";

let result = pattern.test(text); // false
Essayez-le vous-même »

Le métacaractère \b

Le métacaractère \b correspond au début ou à la fin d'un mot.

Exemples

Recherchez les caractères "LO" au début d'un mot :

let text = "BONJOUR, REGARDEZ VOUS!";

let result = text.search(/\bLO/);

Essayez-le vous-même »

Recherchez les caractères "LO" à la fin d'un mot :

let text = "BONJOUR, REGARDEZ VOUS!";

let result = text.search(/LO\b/);

Essayez-le vous-même »


Lookahead RegExp x(?=y)

x(?=y) correspond à "x" si "x" est suivi de "y".

Exemple

Correspond à "formation-ti.org" si "formation-ti.org" est suivi de " Tutoriels".

let text = "formation-ti.org Tutoriels";
let pattern = /formation-ti.org(?= Tutoriels)/;

let result = pattern.test(text);
Essayez-le vous-même »

Lookahead négatif x(?!y)

x(?!y) correspond à "x" si "x" n'est PAS suivi de "y".

Exemple

let text = "formation-ti.org Tutoriels";

let pattern = /formation-ti.org(?! Tutoriels)/;
let result = pattern.test(text);
Essayez-le vous-même »

Explication

formation-ti.org correspond au mot littéral.

(?! Tutoriels) affirme que ce qui suit n'est pas " Tutoriels".

Si text = "formation-ti.org Tutoriels", le test retourne false.

Si text = "formation-ti.org Site Web", le test retourne true.


Lookbehind RegExp (?<=y)x

(?<=y)x correspond à "x" si "x" est précédé de "y".

Exemple

Correspond à "W3Scools" si "formation-ti.org" est précédé de "Bonjour ".

let text = "Bonjour formation-ti.org";
let pattern = /(?<=Bonjour )formation-ti.org/;

let result = pattern.test(text);
Essayez-le vous-même »

Lookbehind négatif (?<!y)x

(?<!y)x correspond à "x" uniquement si "x" n'est PAS précédé de "y".

Exemple

let text = "Bonjour formation-ti.org";

let pattern = /(?<!Bonjour ) formation-ti.org/;
let result = pattern.test(text);
Essayez-le vous-même »


Groupes d'expressions régulières

Char Description
(x) Correspond à x et le sauvegarde
(?<n>x) Correspond à x et le nomme n
(?flag:x) Active le(s) flag(s) pour x
(?flag-flag:x) Désactive le(s) flag(s) pour x

Groupes capturants RegExp (x)

Exemple

let text = "Haha, haha, haha.";
const pattern = /(haha)+/;

let result = text.match(pattern);
Essayez-le vous-même »

Expliqué

  • (haha) capture un groupe de caractères
  • (haha)+ correspond à zéro ou plusieurs occurrences du groupe
  • text.match() retourne un tableau de résultats
  • match.groups() retourne un tableau de correspondances

Groupes capturants nommés (?<n>)

Exemple

const text = "Nom : John Doe";

// Utilisation de groupes capturants nommés
const regex = /(?<firstName>\w+) (?<lastName>\w+)/;
const match = text.match(regex);

let fName = match.groups.firstName;
let lName = match.groups.lastName;
Essayez-le vous-même »

Expliqué

  • (?<firstName>\w+) capture un mot et le nomme firstName
  • (?<lastName>\w+) fait de même pour lastName
  • text.match() retourne un tableau avec une propriété groups
  • match.groups() retourne un objet :
    {firstName:"John", lastName:"Doe" }

Lors de l'utilisation de groupes capturants, la méthode String match() et la méthode RegExp exec() retournent un objet de correspondance avec une propriété groups. Cette propriété contient les noms et les valeurs des groupes.


Modificateurs de groupe RegExp (?flag)

La syntaxe (?flag) est un modificateur de groupe (modificateur de flag en ligne).

Elle permet de modifier les flags dans une partie d'un motif, plutôt que sur l'ensemble du motif.

(?flags:pattern) active les flags uniquement pour le motif dans le groupe.

Exemple

Le flag i est uniquement activé pour la partie formation-ti.org du motif.

let text = "formation-ti.org tutoriels.";
const pattern = /(?i:WShools) tutoriels/;

// Retourne true :
let result = pattern.test(text);
Essayez-le vous-même »

Le flag i est uniquement activé pour la partie formation-ti.org du motif.

let text = "formation-ti.org Tutoriels.";
const pattern = /(?i:W3Sshools) tutoriels/;

// Retourne false :
let result = pattern.test(text);
Essayez-le vous-même »


Méthodes d'expressions régulières

La recherche d'expressions régulières et le remplacement peuvent être effectuées avec différentes méthodes.

Voici les plus courantes :

Méthodes de chaîne

Méthode Description
match( regex ) Retourne un tableau de résultats
matchAll( regex ) Retourne un itérateur de résultats
replace( regex ) Retourne une nouvelle chaîne
replaceAll( regex ) Retourne une nouvelle chaîne
search( regex ) Retourne l'index de la première correspondance
split( regex ) Retourne un tableau de résultats

Méthodes RegExp

Méthode Description
regex .exec() Retourne un itérateur de résultats
regex .test() Retourne true ou false