Test d’expressions régulières
Testez localement des expressions régulières JavaScript avec les flags g/i/m/s/u/y, le nombre de correspondances, les groupes de capture, les groupes nommés, les positions ligne-colonne et l'aperçu de remplacement natif.
/
/g
Texte de test
Caractères
0 / 50,000
Résultats des correspondances
Entrez un modèle pour commencer la correspondance
Texte de remplacement
Caractères
0 / 50,000
Aperçu du remplacement
Démarrage rapide
Scénarios courants
Extraction de données
utilisez (\d{4}-\d{2}-\d{2}) pour extraire les dates et ([\w.]+@[\w.]+) pour extraire les adresses e-mail
Validation de format
écrivez une regex, collez plusieurs exemples et vérifiez rapidement si le motif correspond exactement au format cible
Remplacement en lot
utilisez les groupes de capture pour restructurer le contenu. Par exemple, convertissez "Prénom Nom" en "Nom, Prénom" avec le motif (\S+)\s+(\S+) et le remplacement $2, $1
Groupes nommés
utilisez (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) pour extraire les dates, puis utilisez $<year>/$<month>/$<day> pour les reconstruire
Apprentissage des regex
essayez différents motifs et observez le comportement des correspondances pour comprendre visuellement les quantificateurs, ancres et classes de caractères
Gestion multiligne
activez l'indicateur m pour que ^ et $ correspondent ligne par ligne, utile pour les journaux, le code et les fichiers de configuration
Conseils d'utilisation
Limitations et compatibilité
Confidentialité & sécurité
FAQ
Une expression régulière (regex) est un langage de motifs pour décrire des structures de texte. C'est une recherche avancée: au lieu de chercher un mot fixe, vous cherchez tout ce qui suit une règle.\n\nPar exemple, \\d{4}-\\d{2}-\\d{2} correspond aux dates au format AAAA-MM-JJ, et [\\w.]+@[\\w.]+ correspond à des adresses e-mail simples. Les regex servent à chercher et extraire du texte, valider des formats et remplacer du contenu par lots.\n\nLa plupart des langages de programmation (JavaScript, Python, Java, Go, etc.) et de nombreux outils (VS Code, grep, sed) prennent en charge les regex avec des variantes de syntaxe. Cet outil utilise le moteur JavaScript RegExp pour tester rapidement dans le navigateur.
Une regex JavaScript renvoie seulement la première correspondance par défaut: c'est le comportement du langage, pas une limite de l'outil. Activez le flag g pour lancer une recherche globale et voir toutes les correspondances.\n\nAttention à l'interaction entre g et y: g parcourt tout le texte du début à la fin, tandis que y (sticky) impose que chaque correspondance commence exactement là où la précédente s'est terminée. S'il existe des caractères entre deux correspondances, y s'arrête au premier écart. Le plus souvent, g sans y suffit.
Les causes les plus fréquentes sont au nombre de quatre : 1. Parenthèses ou crochets non fermés : chaque ( doit avoir son ), et chaque [ son ]. Même si l’éditeur complète parfois automatiquement, l’outil valide le motif réellement saisi. 2. Quantificateurs mal placés : *, +, ?, {n} doivent suivre un élément répétable. Les combinaisons comme *+ ou ?* sont invalides ; les quantificateurs non avides s’écrivent *? ou +?. 3. Échappement incomplet : un \ isolé en fin de motif est invalide ; il doit échapper un caractère précis, par exemple \d, \n ou \\. 4. Propriétés Unicode sans indicateur u : \p{L}, \p{Script=Han} et les escapes similaires nécessitent l’option u dans cet outil.
Ces références viennent de String.prototype.replace() en JavaScript : - $1, $2, ..., $99 : contenu du groupe de capture correspondant. - $& : correspondance complète. - $` : texte avant la correspondance. - $' : texte après la correspondance. - $<name> : contenu d’un groupe nommé (?<name>...). Par exemple, si (\w+)\s(\w+) correspond à « hello world », le remplacement $2-$1 produit « world-hello ». Pour insérer un $ littéral dans le remplacement, écrivez $$.
Les moteurs regex diffèrent surtout sur trois points : 1. Syntaxe prise en charge : JavaScript ne prend pas en charge la récursion PCRE (?R), les branches conditionnelles (?(cond)yes|no) ni les groupes atomiques (?>...). Le module re de Python non plus, tandis que le module tiers regex en prend certains en charge. Java prend en charge les groupes atomiques, mais pas la récursion. 2. Unicode : en JavaScript, \w correspond surtout aux lettres latines de base, aux chiffres et au trait de soulignement. Activer u ne le fait pas correspondre automatiquement aux caractères chinois. Pour les lettres Unicode, utilisez des property escapes comme \p{L} avec l’indicateur u. 3. Sauts de ligne : en Python, . ne correspond pas à \n par défaut, comme en JavaScript. Pattern.DOTALL en Java se rapproche du flag s de JavaScript. Utilisez cet outil pour vérifier rapidement JavaScript RegExp, puis confirmez avec le moteur réel du langage cible.