Du langage naturel au regex
Le regex, on l'oublie sans arrêt. Décris → Ryna AI l'écrit, l'explique et fournit des cas de test.
Try one of these:
Ryna AI Editorial Team · Updated September 1, 2026
Tu vois clairement le motif — « attrape les numéros de téléphone dans ce format », « extrais les dates des lignes de log », « ne laisse passer que les e-mails valides » — mais dès que tu tombes sur la syntaxe regex, tu cales. Un quantificateur mal placé et le motif ne capture rien ou tout ; \d et \w se confondent ; tu louches dans l'enfer des antislashs. La regex a aussi un côté sérieux : en 2019, un seul motif mal écrit a mis Cloudflare hors ligne dans le monde entier pendant environ 30 minutes, par catastrophic backtracking. Un motif qui « a l'air de marcher » peut bloquer un CPU en production.
Tu décris à Ryna AI en français courant (ou en anglais) ce que tu veux capturer, tu précises ton langage/ta variante (JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, grep/POSIX), et tu reçois le motif prêt à l'emploi, une explication token par token, des chaînes de test qui doivent correspondre et qui ne doivent PAS correspondre, et des notes sur les cas limites (unicode, chaîne vide, greedy vs lazy, ancres). Ça marche aussi dans l'autre sens : colle une regex cryptique et demande « qu'est-ce que ça fait ? », ou donne ton motif plus l'entrée sur laquelle il échoue et demande « pourquoi ça explose ? »
Ne mets jamais une regex en production les yeux fermés : traite le motif de Ryna comme un brouillon et teste-le sur des exemples positifs et négatifs tirés de tes propres données réelles. Le plan Free te donne des dizaines de messages par jour — tu peux essayer et affiner beaucoup de motifs toute la journée. Téléverser un vrai fichier de log, un CSV ou une capture d'écran pour dire « génère un motif qui attrape tous les numéros de commande dans ces données », ou obtenir une analyse ReDoS approfondie d'un motif complexe, demande Plus (399,99 TL/mois).
Why use Ryna AI for this
Sortie adaptée à la variante : JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, grep/POSIX — Ryna utilise la bonne syntaxe pour le lookbehind, les groupes nommés et le comportement unicode.
Explication token par token : Ryna décompose ce que fait chaque `\d`, `[^ ]`, `(?:...)`, `{2,4}`, pour que tu comprennes le motif au lieu de l'apprendre par cœur.
Jeu de tests automatique : Ryna produit ensemble des chaînes d'exemple qui doivent correspondre ET qui ne doivent PAS correspondre, pour repérer d'emblée le sur-matching.
Couverture des cas limites : Ryna signale la chaîne vide, les caractères unicode, les sauts de ligne, greedy vs lazy et le comportement ancré ou non.
Alerte ReDoS : Ryna signale les risques de catastrophic backtracking comme les quantificateurs imbriqués (a+)+ et propose un motif de remplacement plus sûr.
Fonctionne dans les deux sens : Ryna génère un motif à partir d'une description, et explique en langage clair une regex cryptique que tu colles, ou débogue celle qui est cassée.
Example prompts
Click any prompt to load it into the box above and run it right here. Each prompt is tuned for a different scenario — try them all to see how Ryna AI adapts.
How it works — step by step
- 1
Décris ce qu'il faut capturer
Sur chat.rynaai.com, décris en langage clair ce que tu veux capturer : « attrape les numéros de facture dans ce format » ou « ne laisse passer que les e-mails qui se terminent par .edu ». Plus tu es concret, plus le motif est précis.
- 2
Précise la variante et l'objectif
Quel langage/moteur : 'JavaScript', 'Python re', 'PCRE', 'Go RE2', 'grep' — car le lookbehind, les groupes nommés et le comportement unicode de \d varient selon la variante. Précise aussi ton objectif : validation, ou extraction à l'intérieur d'un texte ?
- 3
Donne des exemples positifs et négatifs
Inclus 3-4 chaînes qui doivent correspondre ET 3-4 qui ne doivent pas : « celles-ci doivent passer : … celles-ci doivent échouer : … ». Les exemples négatifs sont le signal le plus fort contre le sur-matching.
- 4
Demande l'explication et les tests
Dis « explique le motif token par token et donne un tableau de tests avec des exemples qui correspondent et d'autres non ». Comme ça, tu vois ce qui marche et pourquoi avant de copier-coller, et ça forme aussi un développeur junior.
Example: input → output
You ask
JavaScript. Valide un numéro de téléphone américain : +1 facultatif, indicatif régional avec ou sans parenthèses, espaces ou tirets autorisés. Donne des exemples qui doivent correspondre et d'autres qui ne doivent pas.
Ryna AI returns
```js /^(?:\+1[ -]?)?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{4}$/ ``` **Décomposition des éléments** - `^ … $` — valide toute la chaîne d'un bout à l'autre - `(?:\+1[ -]?)?` — indicatif pays +1 facultatif avec séparateur - `\(?\d{3}\)?` — indicatif régional à 3 chiffres, parenthèses facultatives - `[ -]?` — espace ou tiret facultatif comme séparateur - `\d{3}[ -]?\d{4}` — les 7 chiffres restants **Tableau de test** | Entrée | Résultat | |---|---| | +1 (415) 555-2671 | correspond | | 415-555-2671 | correspond | | 4155552671 | correspond | | 415-555-267 | pas de correspondance (trop court) | | (415) 55-2671 | pas de correspondance (mauvais groupement) | **Remarques sur les cas limites :** Le motif ne valide que le *format*, pas le fait que le numéro soit réel ou actif. Comme les séparateurs sont permissifs, il accepte aussi des parenthèses déséquilibrées comme '415)-555-2671' ; si tu as besoin d'un format strict, exige des parenthèses appariées avec un groupe plus strict. Il ne contient pas de quantificateurs imbriqués, donc aucun risque de ReDoS, et il compile aussi proprement en Go RE2.
Pro tips
- Donne non seulement des exemples qui doivent correspondre, mais aussi ceux qui ne doivent PAS correspondre — ce sont les négatifs qui empêchent le mieux le motif d'attraper trop de choses.
- Précise toujours la variante : le lookbehind existe en JS et en PCRE mais pas en Go RE2 ; \d capte aussi les chiffres Unicode dans certaines variantes — dis [0-9] si tu veux de l'ASCII uniquement.
- Demande d'« utiliser des groupes nommés » pour la lisibilité — (?<year>\d{4}) te permet de récupérer les captures par nom plutôt que par index, ce qui est bien plus maintenable dans le code.
- Demande : « y a-t-il un risque de ReDoS lié à des quantificateurs imbriqués comme (a+)+, et donne-moi une version sûre » — non négociable pour un motif en production.
- Distingue la validation de toute la chaîne de la recherche à l'intérieur : utilise les ancres ^...$ pour valider, retire-les pour chercher ou extraire — sinon tu rejetteras des données valides.
- Demande une version « stricte » et une version « tolérante » du même travail — l'une pour le format exact, l'autre pour attraper les données en désordre du monde réel.
Common mistakes to avoid
- ✕Demander un motif sans préciser la variante — un motif à lookbehind qui marche en JS ne compile même pas en Go RE2.
- ✕Ne donner que des exemples positifs — le motif attrape plus que prévu et produit silencieusement des faux positifs sur des données réelles.
- ✕Confondre une regex avec la « validité » d'un e-mail — un motif attrape les fautes de frappe mais ne peut pas vérifier que la boîte existe ; la délivrabilité exige une vérification SMTP.
- ✕Passer en production sans tester sur des données réelles — « ça compile » n'est pas « ça correspond correctement ».
- ✕Copier aveuglément un motif à quantificateurs imbriqués — des structures comme (.*)* sont sujettes au ReDoS et bloquent le CPU sur de grosses entrées.
Who this is for
Développeurs, analystes de données, DevOps, tous ceux qui parsent des logs.
FAQ
Quels langages et quelles variantes de regex sont pris en charge ?
JavaScript, Python re, PCRE/PHP, .NET, Java, Go RE2, Ruby et grep/POSIX. Précise ta variante dès le départ : RE2 ne prend en charge ni le lookaround ni les références arrière, et Ryna te prévient en proposant une solution de rechange.
Une regex valide-t-elle parfaitement les e-mails ?
Non. Un motif RFC 5322 complet est énorme et impraticable ; la regex attrape les fautes de frappe (@ manquant, points doublés) mais ne peut pas confirmer l'existence de la boîte. La vraie délivrabilité passe par un service de vérification/SMTP — Ryna te donne un motif « suffisant » adapté à l'usage.
Prévient-elle du backtracking catastrophique / ReDoS ?
Oui, il suffit de le demander. Elle signale les risques liés aux quantificateurs imbriqués et propose une solution sûre, sans backtracking, de type RE2. Pour les motifs complexes, le Deep Thinking de Plus fait une analyse plus détaillée.
Peut-elle expliquer une regex cryptique que j'ai déjà ?
Oui, ça marche aussi dans l'autre sens. Colle le motif : Ryna l'explique élément par élément en français clair, donne des exemples de ce qu'il capture et signale les bugs cachés (mauvaise ancre, échappement manquant).
Puis-je téléverser un log ou un CSV pour déduire un motif à partir des données ?
Oui, mais le téléversement de fichiers, PDF et captures d'écran est réservé à Plus (399,99 TL/mois). Avec le forfait Free, tu colles des lignes d'exemple sous forme de texte ; tu as des dizaines de messages par jour, de quoi itérer et affiner autant que tu veux.
Related use cases
Free — dozens of daily messages
No credit card. Plus at 399.99 TRY/mo unlocks image analysis, file analysis (PDF/Word/Excel), deep thinking, web research, and assistants.