Comment écrire une regex sans connaître la regex ?
Au lieu de lire la doc regex et de batailler avec `\d+` et `[a-z]` à la main, collez des exemples de ce que vous voulez matcher et ce que vous voulez sauter. L'outil synthétise 3-6 expressions régulières candidates et montre laquelle convient le mieux.
Textarea de gauche : ce qui doit matcher (un exemple par ligne). Textarea de droite : ce qui ne doit PAS matcher. L'algorithme : tokenize, aligne, généralise, vérifie. Sortie : un `/regex/flags` prêt à utiliser avec un panneau de test pour chaque exemple.
Il essaie les patterns les plus simples d'abord (alternance `(opt1|opt2)`) puis le matching par position, puis les patterns structurels avec des quantificateurs comme `\d+`, `[a-z]+`. Affiche chaque candidat, vous choisissez ou ajustez à la main.
Comment l'utiliser
- Dans "Should match", collez 3-10 exemples, un par ligne. Plus d'exemples = meilleure regex.
- Dans "Should NOT match", collez les exemples qui NE doivent PAS matcher (par ex. emails malformés quand vous ciblez les emails). Aide l'outil à rejeter les patterns trop larges.
- L'outil génère plusieurs candidats automatiquement. Chacun affiche : combien de positifs ont matché, combien de négatifs ont mal matché.
- Choisissez un candidat en cliquant "Use this". Un aperçu apparaît avec les résultats de test par exemple.
- Activez "Manual edit" pour ajuster la regex choisie (par ex. ajouter des frontières de mot `\b`, des flags `(?i)`).
- Copy la regex finale et collez dans votre code (JS, Python, Java, Go, PHP).
- Si aucun candidat ne va parfaitement, ajoutez plus d'exemples (des deux côtés). L'algorithme apprend de chaque nouvelle ligne.
Quand c'est utile
Situations réelles où les compétences regex vous économisent des heures :
- Validation de formulaire : un champ "confirmer email" a besoin d'une regex. Générez-en une depuis 5 emails exemples en 30 secondes.
- Parsing de logs : chasse aux patterns de timestamp, IP, user-agent dans des fichiers .log. Fournissez 3-4 lignes de log, obtenez un pattern.
- Nettoyer des données CSV/Excel : extraire des numéros de téléphone, codes postaux, dates. Traditionnellement fastidieux, regex le fait en une expression.
- Rechercher et remplacer dans les éditeurs : VSCode, Sublime, IntelliJ supportent tous la recherche regex. Une regex remplace 200 fragments d'un coup.
- Validation d'API : middleware Express, Pydantic FastAPI, pipes NestJS, tous valident l'entrée via regex.
- Migrations de base : `UPDATE table SET col = REGEXP_REPLACE(col, ...)` en Postgres, MySQL, Oracle.
- Web scraping : extraire des URLs, emails, numéros de téléphone du HTML (de meilleurs outils existent pour parser le HTML, mais pour les cas simples, regex va bien).
- Recherche terminal : `grep -E`, `ripgrep`, `ack` utilisent tous regex. Recherche éclair sur des gigaoctets de code.
- Assainissement d'entrée : vérifier qu'un nom d'utilisateur ne contient que des caractères sûrs, qu'un identifiant fiscal a 10 chiffres, qu'un ISBN a un format valide.
Après avoir généré une regex, testez-la interactivement ou convertissez vers Python si vous travaillez dans un autre langage.