GUIDE Technique

Comment écrire des expressions régulières avec l'IA

Écrire des expressions régulières avec l'IA signifie décrire le modèle de texte souhaité avec des mots simples, récupérer une expression régulière avec une explication pièce par pièce et la tester par rapport à des exemples réels et délicats avant de l'utiliser.

  • 4 minutes de lecture
  • Dernière mise à jour
Sur cette page4 minutes de lecture
  1. Aperçu
  2. Plongée profonde
  3. Impact stratégique
  4. L'avenir de la façon d'écrire des expressions régulières avec l'IA
  5. Mise en œuvre dans le monde réel
  6. Risques et garde-fous
  7. Feuille de route de mise en œuvre
  8. Continuez à explorer
  9. Questions fréquemment posées

Aperçu

C'est important car l'expression régulière est compacte et difficile à lire, donc l'IA permet de gagner du temps réel, mais un modèle qui semble correct peut toujours correspondre trop ou pas assez.

Plongée profonde

Une expression régulière est un mini-langage permettant de décrire des modèles de texte. \d correspond à un chiffre, + signifie un ou plusieurs, [A-Z] est une classe de caractères, ^ et $ ancrent le début et la fin, et les parenthèses créent des groupes que vous pouvez capturer. Regex fonctionne dans presque tous les langages de programmation et dans les éditeurs de texte, les outils de ligne de commande tels que grep et les fonctions de feuille de calcul. Il est également notoirement difficile à lire, c'est exactement pourquoi l'IA aide : vous décrivez le modèle avec des mots et demandez à la fois l'expression régulière et une explication jeton par jeton. La qualité de votre description décide de la qualité du résultat. Dites ce qui doit correspondre et ce qui ne doit pas correspondre, donnez trois à cinq exemples positifs et plusieurs négatifs, et nommez la version ou le moteur : JavaScript, le module re de Python, PCRE, Java, .NET, POSIX grep ou Google Sheets, qui utilise RE2. Les saveurs diffèrent. La prise en charge du lookbehind, la syntaxe des groupes nommés et la gestion Unicode varient, et RE2 laisse délibérément de côté les références arrière et le lookaround afin de pouvoir garantir la correspondance dans le temps linéaire. Puis testez. Collez le modèle dans un testeur tel que regex101, qui met en évidence les correspondances et explique chaque partie, et exécutez-le dans les cas extrêmes : chaînes vides, espaces supplémentaires, entrées très longues, caractères non anglais et quasi-accidents. Vous pouvez également demander à l'IA de générer des chaînes de test délicates, mais vérifiez-les vous-même. Les idées fausses courantes incluent le fait de penser qu'une expression régulière qui correspond à vos exemples est correcte (elle peut également correspondre à des choses que vous n'avez jamais envisagées), que la validation d'e-mail ou d'URL nécessite une expression régulière parfaite (la norme d'adresse e-mail complète est très complexe et la plupart des équipes utilisent un simple contrôle d'intégrité plus un e-mail de confirmation), et que l'expression régulière convient à chaque travail d'analyse. HTML, JSON et les structures imbriquées sont mieux gérées par un véritable analyseur.

Impact stratégique

Coût et budget

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.

Décisions plus claires

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.

Contrôle qualité

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

L'avenir de la façon d'écrire des expressions régulières avec l'IA

Les assistants IA sont désormais intégrés à de nombreux éditeurs de code, donc générer une regex en place devient une routine. Ce qui ne changera pas, c'est que le comportement des regex dépend du moteur et de l'entrée, les tests restent donc de la responsabilité de celui qui expédie le modèle. Les outils qui associent la génération aux cas de test suggérés et aux avertissements concernant les constructions à risque constituent une direction naturelle. Pour de nombreuses tâches, un bon assistant peut également recommander une alternative plus claire, comme une petite fonction d'analyse ou une bibliothèque conçue pour les dates ou les e-mails, qui est souvent plus facile à maintenir qu'un modèle astucieux sur une seule ligne.

Mise en œuvre dans le monde réel

Un responsable de l'équipe d'assistance demande un modèle qui trouve des numéros de commande tels que « ORD-2024-00417 » dans le texte de l'e-mail, puis le teste sur « ORD-24-1 » et « word-2024-00417 » pour confirmer que les deux sont rejetés.

Un développeur demande une expression régulière JavaScript qui valide les codes postaux américains sous forme à 5 chiffres ou ZIP+4, ancrés avec ^ et $ afin que « 123456 » échoue.

Un écrivain nettoyant un manuscrit dans un éditeur de code demande une expression régulière de recherche et de remplacement qui réduit les espaces doubles après les points en espaces simples, en utilisant un groupe de capture dans le remplacement.

Un administrateur système demande une expression régulière Python avec des groupes nommés pour extraire l'horodatage, le niveau de journalisation et le message des lignes du journal d'application, puis le vérifie sur les lignes contenant des messages longs et des champs manquants.

Risques et garde-fous

  • L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.

  • Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.

  • Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.

Feuille de route de mise en œuvre

  1. Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.

  2. Benchmark dans des conditions de charge et de données réalistes.

  3. Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.

  4. Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Continuez à explorer

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the How to Write Regular Expressions with AI quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Démarrer le quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Questions fréquemment posées

Qu'est-ce que Comment écrire des expressions régulières avec l'IA ?

Écrire des expressions régulières avec l'IA signifie décrire le modèle de texte souhaité avec des mots simples, récupérer une expression régulière avec une explication pièce par pièce et la tester par rapport à des exemples réels et délicats avant de l'utiliser. C'est important car l'expression régulière est compacte et difficile à lire, donc l'IA permet de gagner du temps réel, mais un modèle qui semble correct peut toujours correspondre trop ou pas assez.

Pourquoi \d{5} sans ancres est-il un mauvais modèle pour valider un code postal ?

Sans ^ et $ (ou limites de mots), le modèle n'a besoin que de cinq chiffres quelque part dans le texte, donc les entrées invalides plus longues sont toujours transmises.

Que doit inclure une bonne demande d’expression régulière adressée à une IA ?

Les exemples positifs et négatifs définissent les limites du modèle, et nommer la version évite la syntaxe que votre moteur ne prend pas en charge.

Google Sheets utilise le moteur RE2. Qu’est-ce que RE2 oublie délibérément ?

RE2 omet les références arrière et la recherche afin de garantir une correspondance temporelle linéaire, ce qui signifie que certains modèles d'autres versions ne fonctionneront pas là-bas.

Qu’est-ce qu’un retour en arrière catastrophique ?

Les moteurs de backtracking peuvent essayer un nombre explosif de combinaisons avec des quantificateurs imbriqués. Les attaquants peuvent exploiter cela dans un déni de service appelé ReDoS.

Appliqué au texte « <a><b> », à quoi correspond le motif gourmand <.*> ?

Greedy .* consomme autant que possible, puis recule juste assez pour trouver le > final, il s'étend donc sur les deux balises. La version paresseuse <.*?> correspond simplement à "<a>".