Générateur de code regex

Choisissez le langage et saisissez le motif. Le générateur produit le code d’appel ; vérifiez la syntaxe regex prise en charge par le moteur cible.

Fonctionne localement dans votre navigateur

Comment transformer une expression régulière en exemple de code exécutable

Saisissez une expression régulière, choisissez l’une des sept langues cibles et cliquez sur Générer le code. Le panneau renvoie un court programme qui compile le motif avec l’API d’expressions régulières de cette langue et le teste sur une chaîne d’exemple.

L’extrait est assemblé dans la page : pendant les tests, la génération n’a déclenché aucune requête réseau, le motif ne quitte donc pas le navigateur et l’outil continue de fonctionner après une coupure de connexion.

  1. Saisissez ou collez le motif dans le champ, par exemple \d{6}, ou partez d’un des onze Modèles rapides : adresse e-mail, URL HTTP, adresse IPv4, UUID, date ISO, heure sur 24 heures, couleur hexadécimale, entier, nombre décimal, slug d’URL et version sémantique. Un modèle rapide ne fait que remplir le champ ; rien ne s’exécute avant le clic sur le bouton.
  2. Choisissez la langue cible : JavaScript, PHP, Go, Java, Ruby, Python ou C#.
  3. Cliquez sur Générer le code. L’exemple apparaît dans le panneau ci-dessous ; Copier place l’extrait visible dans le presse-papiers et Effacer vide le champ et le panneau.

Ce que contient l’exemple généré

Ce que produit chaque cible

JavaScript : new RegExp("…") puis pattern.test(text). PHP : preg_match('~…~', $text, $matches) avec un var_dump du résultat, le délimiteur ~ étant échappé dans le motif pour qu’un tilde littéral garde son sens. Go : regexp.Compile avec MatchString et l’erreur de compilation renvoyée par panic. Java : Pattern.compile et matcher(text).find(). Ruby : Regexp.new('…') et match?. Python : re.compile, search et bool(). C# : une chaîne verbatim @"…" avec Regex.IsMatch(text, pattern).

Chaque exemple conserve le texte de test dans une variable nommée text ($text en PHP) contenant une chaîne vide, et le motif est échappé pour le littéral de chaîne de la langue — barres obliques inverses, guillemet correspondant, ainsi que \r et \n là où la langue les attend — de sorte que des motifs comme say "hi", a\~b ou a~b arrivent inchangés dans le moteur cible. Chaque extrait a été exécuté sur des entrées correspondantes et non correspondantes pour ces cas et a renvoyé le résultat attendu.

À vérifier avant de coller l’extrait dans votre projet

Les exemples testent une chaîne vide : la plupart affichent donc un résultat négatif tant que vous n’avez pas remplacé text par votre propre entrée. Rien n’est validé : un motif qui ne compile pas — barre oblique inverse isolée, groupe non fermé — est copié exactement tel que saisi et échoue dans la langue cible, et les options écrites dans le motif (/abc/i) restent du texte littéral au lieu de devenir les options propres à la langue.

PHP s’appuie sur PCRE avec le délimiteur ~, et PCRE ne connaît pas l’échappement \uXXXX : pour un caractère comme é, utilisez \x{00E9} dans un motif /u. Go compile avec regexp, qui refuse les lookaround et les références arrière ; le programme généré s’arrête donc sur des motifs que JavaScript ou Python acceptent.

Un même motif ne veut pas dire la même chose partout

L’outil recopie le texte du motif ; il ne le traduit pas d’un moteur à l’autre. Mesuré avec le même motif dans trois moteurs : ^b correspond à l’intérieur de "a\nb" en Ruby, où ^ et $ s’ancrent aux lignes, et ne correspond pas en JavaScript, Python ou PHP. \d correspond au chiffre arabo-indien ٣ en Python, et en PHP uniquement avec le modificateur /u, alors que Ruby et JavaScript limitent \d aux chiffres ASCII 0–9. Testez le motif dans la langue cible avant de le livrer.

Outils récents :