RegEx
- Renaud Jordi
- 11 avr.
- 2 min de lecture
Dernière mise à jour : 24 avr.
(?<=i )[vleo]+(?= u)
I know
Aujourd’hui : Expressions régulières (ou expressions rationnelles).
Si la syntaxe ne date pas d’hier, certains la découvrent peut-être aujourd’hui 🙂
Qui n’a jamais tapé un *.pdf dans sa barre de recherche ?
Sans le savoir, vous avez utilisé une syntaxe d’expression régulière. 😀
Selon Wikipédia, une expression régulière décrit, selon une syntaxe précise, un ensemble de chaînes de caractères possibles.
C’est justement le but du *.pdf : sélectionner tous les noms de fichiers qui terminent par .pdf
Évidemment, quand on parle d’expressions régulières, on fera souvent référence à la syntaxe standard POSIX qui est bien différente de la recherche de fichiers. 😉
Non seulement, celle-ci est plus puissante, mais elle vient aussi avec les fonctions de remplacement. Ainsi, dans un fichier texte, on peut par exemple :
Sélectionner toutes les lignes qui commencent par Error
Rechercher toutes les adresses IP du type : WWW.XXX.YYY.ZZZ
Rechercher toutes les dates au format DD/MM/YYYY et les remplacer par YYYY-MM-DD
Valider des saisies de formulaires
Vous l’aurez compris, la liste ne s’arrête pas là, et les applications sont infinies. À tel point qu’on peut les retrouver partout ! Dans des outils comme Notepad++, VSCode ou Vim ou encore intégrées nativement dans des langages tels que Perl, Python ou PHP.
Bien sûr, pas question ici de training express dans ce miniarticle LinkedIn. Il y en aurait bien trop à dire.
Alors voici quelques conseils pour les aguerris comme pour les débutants :
Technique du duck debugging 😀 Si vous savez ce que vous voulez, dites-le à haute voix. Si vous savez ce que vous ne voulez pas, dites-le aussi !
KISS : Keep It Simple, Stupid ! : Commencez petit et construisez votre regex au fur et à mesure
Utilisez le .* avec parcimonie, cela peut vite consommer des ressources
Connaissez vos classes et anti-classes : \d \D, \w \W, \s\S. Par exemple, un \D* peut être plus efficace qu’un .*
Testez ! regex101.com par exemple fonctionne très bien. Et le débugueur intégré vous aidera à comprendre vos erreurs 🙂
Et vous, d’autres conseils à partager ?
