Les expressions régulières : un outil puissant à manipuler – Résumé

Expression régulière facile
Expression régulière facile

Introduction

Les expressions régulières, souvent abrégées en « regex », sont un outil indispensable pour tout développeur ou administrateur système. Elles permettent de rechercher, de remplacer et de valider du texte de manière très flexible et efficace. Que vous souhaitiez extraire des informations spécifiques d’un fichier de log, valider un format d’email ou remplacer des occurrences de texte dans un document, les expressions régulières sont là pour vous faciliter la vie.

Définition et syntaxe de base

Une expression régulière est une chaîne de caractères qui définit un motif de recherche. Elle est composée de caractères littéraux et de métacaractères qui ont une signification spéciale. Voici quelques-uns des métacaractères les plus courants :

  • . (point) : correspond à n’importe quel caractère unique, sauf le retour à la ligne.
  • * (astérisque) : correspond à zéro ou plusieurs occurrences du caractère ou du groupe précédent.
  • + (plus) : correspond à une ou plusieurs occurrences du caractère ou du groupe précédent.
  • ? (point d’interrogation) : correspond à zéro ou une occurrence du caractère ou du groupe précédent.
  • ^ (accent circonflexe) : correspond au début d’une ligne.
  • $ (dollar) : correspond à la fin d’une ligne.
  • [jkl] (crochets) : correspond à n’importe quel caractère (j, k ou l) unique dans la liste entre crochets.
  • [a-d] (crochets) : correspond à n’importe quel caractère unique dans la liste entre crochets ( de a à d).
  • [^] (crochets avec accent circonflexe) : correspond à n’importe quel caractère unique qui n’est pas dans la liste entre crochets.
  • | (barre verticale) : correspond à l’expression avant ou après la barre.
  • () (parenthèses) : groupe des caractères ensemble et crée une référence à ce groupe.
  • \w : correspond à n’importe quel caractère alphanumérique (lettre, chiffre ou underscore).
  • \W : correspond à n’importe quel caractère non alphanumérique.
  • \s : correspond à n’importe quel caractère d’espacement (espace, tabulation, retour à la ligne).
  • \S : correspond à n’importe quel caractère non-espacement.
  • \d : correspond à n’importe quel chiffre.
  • \D : correspond à n’importe quel caractère non-chiffre.
  • {n} : correspond à exactement n occurrences du caractère ou du groupe précédent.
  • {n,} : correspond à au moins n occurrences du caractère ou du groupe précédent.
  • {n,m} : correspond à entre n et m occurrences du caractère ou du groupe précédent.
  • \n : correspond à un retour à la ligne.
  • \t : correspond à une tabulation.
  • \r : correspond à un retour chariot.
Expression régulière facile

Au-delà de ces expressions de base, les expressions régulières peuvent devenir très complexes et spécifiques à certains cas d’utilisation. Il est important de bien comprendre les bases avant de se lancer dans des expressions plus avancées.

Exemples concrets en PowerShell, VBA et Python

Prenons une liste de noms et appliquons-y quelques expressions régulières courantes pour mieux comprendre leur fonctionnement. Voici notre liste d’exemple :

John Doe
Jane Doe
John Smith
Jane Smith

Rechercher les lignes commençant par « John »

  • PowerShell : Select-String -Pattern "^John" -Path "liste.txt"
  • VBA : RegExp.Pattern = "^John"
  • Python : re.findall(r"^John", text)

Rechercher les lignes se terminant par « Doe »

  • PowerShell : Select-String -Pattern "Doe$" -Path "liste.txt"
  • VBA : RegExp.Pattern = "Doe$"
  • Python : re.findall(r"Doe$", text)

Rechercher « John » ou « Jane »

  • PowerShell : Select-String -Pattern "John|Jane" -Path "liste.txt"
  • VBA : RegExp.Pattern = "John|Jane"
  • Python : re.findall(r"John|Jane", text)

Rechercher un prénom suivi d’un espace et d’un nom de famille

  • PowerShell : Select-String -Pattern "\w+\s\w+" -Path "liste.txt"
  • VBA : RegExp.Pattern = "\w+\s\w+"
  • Python : re.findall(r"\w+\s\w+", text)

Créer un tableau de nombres et appliquer des expressions régulières

Expréssion reg
$nombres = @("123", "456", "789", "abc")
$nombres -match "\d+"

Explication : Cette expression régulière recherche une ou plusieurs occurrences de chiffres dans chaque élément du tableau $nombres.

$nombres = @("123", "456", "789", "abc")
$nombres -match "^\d{3}$"

Explication : Cette expression régulière recherche exactement trois chiffres du début à la fin de chaque élément du tableau $nombres.

Dim nombres As Variant
nombres = Array("123", "456", "789", "abc")

Dim regex As New RegExp
regex.Pattern = "\d+"

Dim i As Integer
For i = 0 To UBound(nombres)
    If regex.Test(nombres(i)) Then
        Debug.Print nombres(i)
    End If
Next i

Explication : Cette expression régulière recherche une ou plusieurs occurrences de chiffres dans chaque élément du tableau nombres.

Dim nombres As Variant
nombres = Array("123", "456", "789", "abc")

Dim regex As New RegExp
regex.Pattern = "^[1-5]\d{2}$"

Dim i As Integer
For i = 0 To UBound(nombres)
    If regex.Test(nombres(i)) Then
        Debug.Print nombres(i)
    End If
Next i

Explication : Cette expression régulière recherche les éléments du tableau nombres qui commencent par un chiffre entre 1 et 5, suivi de deux chiffres.

import re

nombres = ["123", "456", "789", "abc"]
[x for x in nombres if re.match(r"\d+", x)]

Explication : Cette expression régulière recherche une ou plusieurs occurrences de chiffres dans chaque élément de la liste nombres.

import re

nombres = ["123", "456", "789", "abc"]
[x for x in nombres if re.match(r"^[02468]\d+$", x)]

Explication : Cette expression régulière recherche les éléments de la liste nombres qui commencent par un chiffre pair (0, 2, 4, 6 ou 8), suivi d’un ou plusieurs chiffres.

Conclusion

Les expressions régulières sont un outil puissant qui peut vous faire gagner un temps précieux dans vos tâches quotidiennes de développement ou d’administration système. Bien que leur syntaxe puisse sembler intimidante au premier abord, une fois que vous en aurez compris les bases, vous ne pourrez plus vous en passer. N’hésitez pas à vous entraîner avec différents motifs et différents langages pour vous familiariser avec cet outil indispensable. Avec un peu de pratique, vous serez capable de manipuler du texte avec une facilité déconcertante !

Pour aller plus loin et comprendre l’histoire c’est ICI.

1 Comment

  1. XRBlobe

    Hello.

    Good cheer to all on this beautiful day!!!!!

    Good luck 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *