Testeur regex
Testez des regex JavaScript sur n'importe quelle chaîne et voyez les correspondances surlignées en direct. Groupes de capture, flags et positions sont listés en dessous.
Utilise le RegExp natif du navigateur — ce qui marche ici marchera dans votre code JavaScript.
Surligné
Correspondances
Match list with capture groups will appear here.
Saveur JavaScript
Ce testeur utilise le RegExp natif du navigateur. Il supporte la syntaxe regex ECMAScript, qui n'est pas la même que PCRE (PHP, Perl) ou re de Python. Certaines constructions d'autres moteurs ne sont pas disponibles ou se comportent différemment :
- No possessive quantifiers (
a*+,a++). - No atomic groups
(?>...). - No conditional patterns
(?(1)yes|no). - Lookbehind
(?<=...)is supported in modern browsers but can fail in older engines. - Named groups use
(?<name>...)(not(?P<name>...)like Python).
Référence des flags
g— return all matches, not just the first.i— case-insensitive match.m—^and$match at line breaks, not only string edges.s— dot.also matches newlines.u— full Unicode mode;\p{...}property escapes enabled.y— sticky: match must start exactly atlastIndex.
Exemples
Quelques patterns à coller dans le champ ci-dessus pour les voir en action :
\d{4}-\d{2}-\d{2} # ISO-like dates
[\w.+-]+@[\w-]+\.[\w.-]+ # rough email
^https?:\/\/\S+ # URL at line start (needs m flag)
(?<year>\d{4})-(?<mo>\d{2}) # named groupsFAQ
Pourquoi mon pattern qui marche en PHP/Python échoue ici ?
Ce testeur exécute votre pattern via le RegExp du navigateur, qui est ECMAScript flavor. Les fonctionnalités spécifiques à PCRE (quantificateurs possessifs, groupes atomiques, patterns conditionnels) ne sont pas supportées. Réécrivez le pattern en forme compatible ECMAScript.
Mon pattern a figé la page un instant. Pourquoi ?
Le moteur regex de JavaScript est mono-thread et peut être lent sur des patterns avec catastrophic backtracking (par exemple des quantificateurs imbriqués comme (a+)+$). L'outil plafonne la liste de correspondances à 1000 pour limiter les dégâts, mais le match lui-même tourne dans la page.
Comment matcher sur plusieurs lignes ?
Utilisez le flag s si vous voulez que . matche aussi les retours à la ligne, et le flag m si vous voulez que ^/$ s'ancrent à chaque ligne.
Mon pattern et mon texte de test sont-ils envoyés quelque part ?
Non. La regex tourne entièrement dans votre navigateur. Rien n'est envoyé.