Flowfiles ← Testeur Regex

Regex Lookahead & Lookbehind

(?=…) · (?!…) · (?<=…) · (?<!…) — Assertions de largeur nulle — testeur en ligne

Les lookaheads et lookbehinds permettent de vérifier ce qui précède ou suit la position courante sans inclure ce contexte dans la correspondance. Testez-les en direct avec la fonction Expliquer pour décoder chaque assertion token par token.

Collez un patron avec lookahead et utilisez l'expliqueur pour décoder chaque assertion.

Ouvrir le Testeur Regex →

Les quatre assertions de largeur nulle

(?=…)

Lookahead positif — la position doit être suivie du patron.
Exemple : \d+(?= EUR) correspond aux chiffres suivis de " EUR".

(?!…)

Lookahead négatif — la position ne doit PAS être suivie du patron.
Exemple : \bfoo(?!bar)\b correspond à "foo" non suivi de "bar".

(?<=…)

Lookbehind positif — la position doit être précédée du patron.
Exemple : (?<=€)\d+ correspond aux chiffres précédés de "€".

(?<!…)

Lookbehind négatif — la position ne doit PAS être précédée du patron.
Exemple : (?<!\d)\d{4}\b correspond aux nombres de 4 chiffres non précédés d'autres chiffres.

// Extraire les montants sans le symbole €
const prix = '€12.50 et €3.99'.match(/(?<=€)\d+\.\d{2}/g);
// → ["12.50", "3.99"]

// Mots non suivis d'une virgule
'chat, chien oiseau'.match(/\b\w+\b(?!,)/g);
// → ["chien", "oiseau"]

Questions fréquentes

Qu'est-ce qu'une assertion de largeur nulle ?

Une assertion de largeur nulle correspond à une position dans la chaîne plutôt qu'à une plage de caractères. Les lookaheads et lookbehinds vérifient le contexte sans consommer de caractères : le texte à l'intérieur de l'assertion n'apparaît jamais dans la correspondance.

Puis-je combiner lookahead et lookbehind ?

Oui. (?<=€)\d+(?=\.\d{2}) correspond aux chiffres précédés de "€" et suivis d'un point et deux décimales. Plusieurs assertions à la même position sont valides et doivent toutes être vraies simultanément.

Les lookbehinds à longueur variable sont-ils supportés ?

Oui dans V8 (Chrome/Node.js) et SpiderMonkey (Firefox 78+). La spécification ECMAScript autorise désormais les lookbehinds à longueur variable comme (?<=\w+). Certains moteurs plus anciens (PCRE) exigent des lookbehinds à longueur fixe.

Outils liés