Skip to main content
UtilityStack

Testeur de regex — expressions régulières JavaScript

Construisez une expression régulière et voyez-la matcher (ou échouer) sur votre chaîne de test en temps réel. Groupes de capture, flags et aperçu de remplacement, tout est en direct ; rien ne quitte votre navigateur.

2 match(s)
Motif
//gi
Remplacement
Chaîne de test
Résultat du remplacement
Reach out at <<hello@example.com>> or <<support@utility.test>> for help.
Matchs
  • @13hello@example.com
  • @34support@utility.test

Qu'est-ce qu'une expression régulière ?

Une expression régulière (regex) est un petit langage pour décrire des motifs dans du texte. En quelques caractères vous pouvez extraire les emails d'un paragraphe, valider qu'un code postal suit le format d'un pays, ou réécrire chaque identifiant snake_case d'un fichier en camelCase. Les moteurs JavaScript modernes compilent une regex une fois puis l'exécutent à la vitesse d'une boucle serrée.

Ce testeur utilise l'implémentation RegExp native de la plateforme, donc tout ce qui marche ici marchera aussi à l'exécution dans Node, Deno, Bun et tout navigateur moderne. Les flags g, i, m, s, u et y changent la sémantique de matching ; les groupes de capture (les parenthèses du motif) collectent des sous-chaînes que vous pouvez référencer dans le remplacement par $1, $2 etc.

Comment utiliser cet outil

  1. Choisissez un préréglage (email, URL, IPv4…) ou tapez votre propre motif dans le champ regex.
  2. Activez/désactivez les boutons de flag (g, i, m, s, u, y) pour affiner le matching. Survolez pour la description de chaque flag.
  3. Éditez la chaîne de test à droite — les matchs s'affichent en direct. La liste de matchs en dessous montre la position, le match complet et les groupes de capture.
  4. Ajoutez une chaîne de remplacement pour prévisualiser un replace global. Utilisez $1, $2, $&, $` et $' comme avec String.prototype.replace.

Questions fréquentes

Quelle saveur de regex est supportée ?

Regex JavaScript / ECMAScript (le même moteur contre lequel votre code tournera). Cela signifie que les lookbehinds, les groupes nommés (?<nom>…) et les Unicode property escapes \p{…} fonctionnent tous. Les fonctionnalités PCRE-only comme les motifs récursifs ne sont pas supportées.

Comment matcher un caractère spécial littéral comme . ou ?

Échappez-le avec un backslash : \., \?, \(, \). Dans une classe de caractères [.] le point est déjà littéral, donc [.?] matche un point littéral ou un point d'interrogation.

Quelle est la différence entre quantificateurs gourmand et paresseux ?

.* est gourmand — il prend autant que possible puis backtrack. .*? est paresseux — il prend le moins possible puis s'étend. Paresseux pour matcher du contenu entre marqueurs ; gourmand pour matcher des lignes entières.

Pourquoi mon motif ne matche-t-il rien la deuxième fois ?

Si vous utilisez le flag global (g) et réutilisez le même objet RegExp, lastIndex avance après chaque exec(). Réinitialisez avec regex.lastIndex = 0, ou créez une nouvelle RegExp à chaque appel. Ce testeur le réinitialise pour vous entre les rendus.

Mon regex et ma chaîne de test sont-ils envoyés à un serveur ?

Non. Tout tourne dans votre navigateur via le moteur RegExp natif. Vos entrées ne touchent jamais nos serveurs, donc le testeur reste sûr même avec des données sensibles comme une ligne de log contenant des tokens.

Cas d'usage courants

Là où sortir une regex se rentabilise en quelques secondes.

Valider une entrée utilisateur

Un email, un code postal, un numéro de téléphone — une regex serrée est plus rapide à écrire qu'un parser et suffit quand vous voulez juste un check de cohérence avant d'envoyer les données plus loin.

Extraire des données de logs

Sortez les request IDs, IPs ou status codes d'un flux de logs sans parser de JSON. Les groupes de capture vous donnent les champs directement.

Réécrire du code à grande échelle

Renommer une fonction, changer un style de quote, mettre à jour un appel d'API déprécié dans toute une codebase en pipant ripgrep dans sed — les deux parlent regex.

Find and replace dans les éditeurs

La plupart des éditeurs (VS Code, JetBrains, Vim) ont un search-and-replace par regex. Testez le motif ici d'abord pour éviter de corrompre un fichier en masse.

Conseils et astuces

Habitudes qui gardent les regex maintenables.

Ancrez quand vous pouvez

Si une valeur doit occuper tout un champ, ancrez avec ^ au début et $ à la fin. Sans ancres, /\d+/ matche aussi à l'intérieur de 'abc123def' — généralement pas ce que vous voulez pour valider.

Préférez les classes de caractères à l'alternation

[abc] est plus rapide et plus clair que (a|b|c). Utilisez l'alternation seulement quand les alternatives sont multi-caractères.

Commentez avec le flag x si disponible

JavaScript n'a pas le flag verbose, mais vous pouvez construire le motif depuis un literal de chaîne réparti sur plusieurs lignes et le concaténer. Pour des motifs complexes, c'est un gain de lisibilité bien plus grand qu'une mégaligne.

Quand la regex est le mauvais outil

N'essayez pas de parser du HTML, du JSON ou n'importe quoi avec une structure imbriquée. Utilisez un vrai parser (DOMParser, JSON.parse, un AST). La regex brille sur les motifs textuels plats, pas sur des données arborescentes.

Outils similaires