Générateur de regex : du langage courant à une expression fonctionnelle
Décrivez le motif à rechercher en anglais courant et obtenez une expression régulière correcte et fonctionnelle. Compatible avec Python, JavaScript, PCRE, .NET et bien d’autres. Aucun compte requis.
Vous analysez des logs ou validez des entrées toute la journée ?
Passez à Pro pour bénéficier d’un accès prioritaire et de suffisamment d’espace pour coller de longs exemples de données avec vos demandes de motifs.
Aide au code illimitée - Gratuite pendant 7 jours
Générations illimitées, modèles d'IA premium, contexte étendu et historique enregistré. Aucun débit aujourd'hui, résiliez à tout moment.
- Utilisation illimitée
- Modèles premium
- Sans publicité
- Essai gratuit de 7 jours
- Résiliable à tout moment
Générateur de regex par IA pour Python, JavaScript et PCRE
Écrire des expressions régulières à la main est lent et source d'erreurs. Un quantificateur mal placé ou un caractère d'échappement oublié transforme une expression fonctionnelle en une expression qui détecte silencieusement les mauvaises chaînes. Notre générateur de regex par IA part de votre description en anglais courant pour produire l'expression correcte, avec une explication du rôle de chaque partie afin que vous puissiez la comprendre, la tester et la modifier.
Que vous ayez besoin d’un simple validateur d’e-mails, d’un extracteur d’URL complexe ou d’une expression avec un groupe de capture nommé pour analyser des journaux, décrivez votre besoin et obtenez la regex en quelques secondes. Précisez votre langage (Python, JavaScript, Go, Ruby) pour obtenir une syntaxe correcte. À associer à notre Outil d’explication du code pour comprendre tout extrait utilisant des expressions régulières, ou utilisez notre Explication des messages d'erreur lorsque votre motif déclenche une exception. Pour extraire des données avec des commandes shell, consultez notre Générateur de commandes Bash pour les motifs grep et sed.
Ce que prend en charge le générateur
Bibliothèque de motifs regex courants
Des points de départ éprouvés pour les schémas les plus demandés par les développeurs. Copiez-en un tel quel ou collez-le dans le générateur et demandez des ajustements.
| Correspondances | Motif | Comment ça marche |
|---|---|---|
| Adresse e-mail | ^[\w.+-]+@[\w-]+\.[\w.-]+$ |
Caractères de mot, points, signes plus ou traits d’union avant le @, puis un domaine contenant au moins un point. |
| URL (http/https) | https?:\/\/[^\s\/$.?#][^\s]* |
La chaîne littérale http, un s facultatif, puis :// suivi d’une suite quelconque de caractères sans espaces. |
| Adresse IPv4 | ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ |
Quatre octets de 0-255 séparés par des points ; l’alternance rejette les valeurs comme 999. |
| Numéro de téléphone américain | ^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$ |
Trois chiffres avec des parenthèses facultatives, puis 3 et 4 chiffres séparés par un tiret, un point ou une espace facultatifs. |
| Date ISO 8601 | ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
YYYY-MM-DD où le groupe du mois est limité à 12 et celui du jour à 31. |
| UUID v4 | ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ |
Blocs hexadécimaux de 8-4-4-4-12 ; le 4 littéral et la classe [89ab] imposent les caractéristiques de la version 4. |
| Slug d’URL | ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
Segments alphanumériques en minuscules reliés par des traits d’union simples, sans trait d’union au début ni à la fin. |
| Couleur hexadécimale | ^#(?:[0-9a-fA-F]{3}){1,2}$ |
Un dièse suivi d’exactement 3 ou 6 chiffres hexadécimaux, couvrant les formes #fff et #ffffff. |
Ce sont des motifs pratiques, pas des validateurs de conformité stricte aux RFC. La RFC sur les e-mails, par exemple, autorise des adresses bien plus étranges que ce qu'un formulaire raisonnable devrait accepter. Demandez au générateur une version plus stricte ou plus souple selon vos besoins.
Pourquoi les développeurs utilisent un générateur d’expressions régulières par IA
Même les développeurs expérimentés consultent la syntaxe des regex. Les règles des classes de caractères, la différence entre les quantificateurs gourmands et paresseux, les interactions entre les assertions d’anticipation et les groupes de capture : cela fait beaucoup à retenir. Décrire ce que vous voulez et obtenir immédiatement le bon motif est tout simplement plus rapide. L’IA génère aussi des cas de test pour vérifier le motif avant son déploiement, et le Générateur de tests unitaires les transforme en tests complets.
Python utilise les groupes nommés sous la forme (?P<name>...), JavaScript utilise (?<name>...). Précisez votre langage et obtenez une syntaxe qui s'exécute réellement.
Chaque regex générée comprend une explication du rôle de chaque partie - Vous pouvez ainsi la modifier ensuite sans devoir tout reconstruire de zéro.
Collez une expression régulière trouvée dans une base de code ou sur Stack Overflow et demandez ce qu’elle fait. Obtenez une explication en anglais simple de chaque groupe et quantificateur.
Le générateur montre des exemples de chaînes qui correspondent au motif et d’autres qui n’y correspondent pas, afin de vous permettre de le vérifier avant de l’appliquer à des données réelles.
Plus besoin de changer d'onglet pour consulter la documentation des regex. Décrivez, générez, copiez et testez au même endroit. Disponible 24/7, sans compte ni connexion.
Le résultat ne convient pas tout à fait ? Demandez un ajustement en anglais courant - « autoriser aussi un signe plus au début » - et le motif sera mis à jour dans la même conversation.
Cas d'utilisation courants des regex
Les demandes les plus fréquentes traitées par notre générateur d’expressions régulières.
Adresses e-mail, numéros de téléphone, codes postaux, numéros de carte bancaire, URL, adresses IP - validez les saisies des utilisateurs avec des motifs fiables.
Extraire les horodatages, les codes d’erreur, les adresses IP et les agents utilisateurs des journaux serveur à l’aide de groupes de capture nommés pour chaque champ.
Rechercher et remplacer dans une base de code, reformater des dates, normaliser les espaces, supprimer des balises HTML - Des expressions régulières pour sed, grep ou votre IDE.
Extrayez des codes produits, des identifiants de commande, des prix ou toute donnée structurée à partir de texte non structuré grâce aux groupes de capture et aux assertions d’anticipation. À combiner avec notre Convertisseur JSON vers CSV pour l’exportation.
Différences entre variantes de regex : PCRE vs JavaScript vs Python
Un motif qui fonctionne dans un moteur peut provoquer une erreur de syntaxe, ou correspondre discrètement à un autre texte, dans un autre moteur. Voici les différences qui posent le plus souvent problème.
PCRE et celui de Python re prennent en charge les assertions arrière de longueur fixe (?<=...); les bibliothèques tierces de Python regex module autorise une largeur variable. JavaScript n’a intégré les assertions arrière qu’avec ES2018, et les anciennes versions de Safari déclenchent une SyntaxError lorsqu’elles en rencontrent une. Vérifiez donc les navigateurs ciblés avant d’en mettre une en production.
Python écrit les groupes nommés sous la forme (?P<year>\d{4}) et les cite avec (?P=year). JavaScript et PCRE utilisent (?<year>\d{4}). PCRE accepte les deux graphies ; en Python, re rejette la forme seule (?<...> forme purement et simplement.
En Python 3, \d correspond à n’importe quel chiffre Unicode, y compris les chiffres arabo-indiens, sauf si vous passez re.ASCII. En JavaScript, \d correspond toujours aux caractères ASCII 0-9, même avec le u indicateur. Il en va de même pour \w et \b, ce qui est une source fréquente de divergence de validation entre langues.
Lorsque vous demandez une expression au générateur, précisez le moteur qui l’exécutera. Une même demande en langage courant produit des résultats légèrement différents pour Python, JavaScript et PCRE, et c’est précisément cette différence qui évite que l’expression échoue en production.
Questions fréquentes
(?=...), (?!...)), les assertions arrière ((?<=...)), les groupes non capturants et les groupes atomiques lorsque le moteur les prend en charge.re.MULTILINE en Python, /m en JavaScript).