Expression régulière

Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

Une expression régulière, ou expression rationnelle, est, en informatique, une chaîne de caractères que l’on appelle parfois un motif et qui décrit un ensemble de chaînes de caractères possibles selon une syntaxe précise. Les expressions rationnelles sont issues des théories mathématiques des langages formels des années 1940. Leur capacité à décrire avec concision des ensembles réguliers explique qu’elles se retrouvent dans plusieurs domaines scientifiques dans les années d’après-guerre et justifie leur adoption en informatique. Les expressions rationnelles sont aujourd’hui utilisées par les informaticiens dans l’édition et le contrôle de texte ainsi que dans la manipulation des langues formelles que sont les langages de l’informatique.

Généralité

Après avoir vu la vidéo Youtube de Grafikart.fr, je comprends qu'il faut que l'expression régulière soit construite pour prendre en compte l'ensemble des chaines de caractères à traiter :

Une autre vidéo Youtube de Grafikart.fr :

Avec Notpad++

Pour que la fonction "Remplacer" utilise les expressions régulières, il faut activer l'option "expression régulière".

Exemple 1 : remplacer les expressions VOC001, VOC002, VOC003... par <big><code>VOC001</code></big>, <big><code>VOC002</code></big>...

  • source : (VOC\d{3})
  • destination : <big><code>\1</code></big>

Exemple

  • ^Acrobat Reader ([1-9].*)$ : permet de lister toutes les chaines de caractères commençant par "Acrobat Reader" et dont la fin se termine par un chiffre entre 1 et 9 et suivi de n'importe quel caractères répété de 0 à n fois ;
  • ([1-9].*)$ : pour la fin se termine par un chiffre entre 1 et 9 et suivi de n'importe quel caractères répété de 0 à n fois ;
  • ^(Microsoft Visual C\+\+ 20[0-9]{2}(?: x86)? Redistributable)(?: - ((?:KB[0-9]{7} - )?(?:x86 )?[0-9.]+))?$ : permet de lister toutes les chaines de caractères commençant par "Microsoft Visual C++ 20[0-9]{2}(?: x86)? Redistributable" ... ;
  • [0-9]{2} : pour les valeurs comprises entre 00 et 99 ;
  • ^[0-9\s]+\.[0-9]{2} : récupère la chaine numérique de type 12345,12 :
    • ^ : la cible recherchée est au début de la chaine de caractères,
    • [0-9\s]+ : partie entière sans limite de chiffre,
    • \s : avec l'espace comme séparateur des milliers (dans l'expression, la lettre s doit être échappé pour être pris comme option de l'expression régulière et non comme caractère),
    • \. : le point comme séparateur décimal (dans l'expression, le point doit être échappé pour être pris comme un point et non comme option de l'expression régulière),
    • [0-9]{2} : deux décimales,
  • ^[0-9\s]+[,|\.][0-9]{0,2} : récupère la chaine numérique de type 12345,12 :
    • ^ : la cible recherchée est au début de la chaine de caractères,
    • [0-9\s]+ : partie entière sans limite de chiffre,
    • \s : avec l'espace comme séparateur des milliers (dans l'expression, la lettre s doit être échappé pour être pris comme option de l'expression régulière et non comme caractère),
    • [,|\.] : la virgule ou le point comme séparateur décimal (dans l'expression, le point doit être échappé pour être pris comme un point et non comme option de l'expression régulière),
    • [0-9]{2} : deux décimales,
  • .*t.l.chargement.*u ; contient la chaine de caractère "téléchargement" ; l'option u pour l'Unicode
  • (.*)Professionnel(.*) : pour chercher le terme "Professionnel" dans une chaine de caractère ; #0 Professional #1 ; pour assigner le résultat de l'expression régulière

Exemple 1

Pour traitement de fichiers vidéos, avec codification dans le nom :

  • (1920)|(q23)|(.mkv)
  • (?:1280.*q23) : pour rechercher les fichiers dont le nom contient, dans l'ordre, les expressions suivantes 1280 et q23

Exemple 2

Pour des fonctions de personnels d'une entreprise, permet de ne récupérer que la fonction :

  • ^(.*)((,+|.+) (grade|niveau) [1-9])(.*)$

Pour les textes suivants, ne récupère que le groupe 1 (la fonction du personnel sans le grade ou le niveau, ni les virgules):

  • Technicien informatique, grade 2
  • Technicien supérieur, grade 1
  • Technicien laboratoire, grade 5
  • Technicien, niveau 5
  • Technicien de maintenance, niveau 3
  • Technicien de sécurité

Vidéo

Learn Regular Expressions In 20 Minutes de Web Dev Simplified sur YouTube :

Regular Expressions (Regex) Tutorial: How to Match Any Pattern of Text de Corey Schafer sur YouTube

Voir aussi

Lien externe