(?=…) · (?!…) · (?<=…) · (?<!…) — 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 →(?=…)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.
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.
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.
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.