Testeur Regex en ligne | Expressions régulières JavaScript | Awesome Toolkit

Testeur d'Expressions Régulières

Testez vos expressions régulières en temps réel. Correspondances surlignées, groupes de capture affichés, drapeaux configurables.

Par Marshkalk

Correspondances surlignées

Comment utiliser le testeur Regex

  1. Saisissez votre motif d'expression régulière dans le champ Motif.
  2. Activez les drapeaux si nécessaire : g trouve toutes les correspondances, i ignore la casse, m fait correspondre ^ et $ aux limites de ligne, s fait correspondre . aux sauts de ligne.
  3. Collez votre chaîne de test, les correspondances sont surlignées en temps réel et les groupes de capture sont affichés en dessous.

Référence rapide de la syntaxe regex JavaScript

JetonSignification
.N'importe quel caractère sauf retour à la ligne
\d / \DChiffre / non-chiffre
\w / \WCaractère de mot [a-zA-Z0-9_] / non-mot
\s / \SEspace blanc / non-espace
^ / $Début / fin de chaîne (ou ligne avec drapeau m)
\bLimite de mot
+ / * / ?Un ou plus / zéro ou plus / optionnel
{n,m}Entre n et m répétitions
[abc]Classe de caractères
(abc)Groupe capturant
(?:abc)Groupe non-capturant
a|bAlternance (a ou b)

Motifs regex courants

  • Adresse email : [a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}
  • URL : https?://[^\s/$.?#][^\s]*
  • Adresse IP : \b(?:\d{1,3}\.){3}\d{1,3}\b
  • Date (AAAA-MM-JJ) : \d{4}-\d{2}-\d{2}
  • Couleur hex : #(?:[0-9a-fA-F]{3}){1,2}\b

Correspondance gourmande vs paresseuse

Par défaut, les quantificateurs (+, *) sont gourmands: ils correspondent au maximum possible. Ajoutez ? après le quantificateur pour le rendre paresseux (correspond au minimum) : +?, *?. Exemple : <.+?> correspond à des balises HTML individuelles plutôt qu'à tout ce qui se trouve entre le premier < et le dernier >.

Différences entre moteurs : JavaScript vs PCRE vs RE2

La syntaxe regex se ressemble d'un moteur à l'autre, mais le comportement diffère sur des points clés. Un motif qui fonctionne dans le navigateur peut échouer en PHP, Python ou Go :

FonctionnalitéJavaScript (cet outil)PCRE (PHP, Python, Perl)RE2 (Go, Rust)
Lookbehind (?<=...)Largeur fixe (ES2018+)Largeur variableLargeur fixe uniquement
Rétroréférences OuiOuiNon
Groupes atomiques (?>...)NonOuiNon
Classes Unicode \p{L}Oui (avec flag u)OuiOui (par défaut)
\d correspond aux chiffres UnicodeNon (ASCII seul sans u)Oui (PCRE2 par défaut)Non (ASCII seul)

5 pièges fréquents

  • Backtracking catastrophique : Un motif comme (a+)+b sur une longue suite de 'a' sans 'b' provoque un backtracking exponentiel et peut bloquer votre application. Évitez les quantificateurs imbriqués sur des motifs qui se chevauchent. Testez toujours avec une entrée longue qui ne correspond pas.
  • \d et les chiffres Unicode : Sans le flag u, \d ne correspond qu'aux chiffres ASCII 0-9, pas aux chiffres arabes-indiens (٠-٩) ou autres formes Unicode. Ajoutez u et utilisez \p{N} pour tous les chiffres Unicode.
  • ^ et $ sans le flag m : Par défaut, ^ et $ correspondent au début et à la fin de la chaîne entière. Pour des ancres par ligne sur une entrée multiligne, ajoutez le flag m.
  • Quantificateur gourmand qui consomme trop : <.+> sur <b>texte</b> correspond de la première < à la dernière >. Utilisez le paresseux <.+?> pour ne capturer qu'une balise à la fois.
  • Points non échappés dans les domaines : Le point correspond à n'importe quel caractère. exemple.com correspond aussi à exempleXcom. Échappez les points littéraux : exemple\.com.