top of page
Rechercher

RegEx

  • Photo du rédacteur: Renaud Jordi
    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 ?



 
 

© LH&TECH, tous droits réservés.

bottom of page