Aller au contenu

Module RegEx

724 mots·4 mins·
Cours Python Python Module RegEx
Ayédoun Châ-Fine ADEBI
Auteur
Ayédoun Châ-Fine ADEBI
Sommaire

Les RegEx en Python : Domptez la Puissance des Expressions Régulières
#

Les expressions régulières, ou RegEx, c’est l’outil ultime pour manipuler du texte en mode ninja. En Python, le module re vous permet de rechercher, de filtrer, de valider ou de transformer des chaînes de caractères avec une efficacité redoutable. Dans cet article, on va plonger dans l’univers des RegEx, découvrir leurs bases et voir comment les utiliser pour rendre vos scripts Python encore plus puissants. 🚀


1. Introduction aux RegEx
#

Les expressions régulières sont des patterns qui permettent de définir des ensembles de chaînes de caractères. Que vous ayez besoin d’extraire des emails, de valider un numéro de téléphone ou simplement de découper une phrase, les RegEx sont vos alliées.

Exemple classique :

  • Pattern : \d+
  • Description : Recherche une ou plusieurs occurrences de chiffres.

2. Le module re en Python
#

Avant de plonger dans des exemples pratiques, importez simplement le module :

import re

Ce module offre plusieurs fonctions essentielles pour travailler avec les RegEx.


3. Fonctions Clés du module re
#

🔹 re.search() : Chercher un motif dans une chaîne
#

re.search() retourne le premier match trouvé dans la chaîne, sinon None.

import re

texte = "Mon numéro est 12345, appelez-moi !"
resultat = re.search(r"\d+", texte)

if resultat:
    print("Match trouvé :", resultat.group())  # Affiche : 12345

🔹 re.match() : Tester le début d’une chaîne
#

re.match() vérifie si le pattern correspond dès le début de la chaîne.

import re

texte = "2025-03-04 est une date importante"
resultat = re.match(r"\d{4}-\d{2}-\d{2}", texte)

if resultat:
    print("Date détectée :", resultat.group())  # Affiche : 2025-03-04

🔹 re.findall() : Trouver toutes les correspondances
#

Pour récupérer tous les matches, re.findall() retourne une liste.

import re

texte = "Les nombres dans cette phrase sont 12, 34 et 56."
nombres = re.findall(r"\d+", texte)
print("Nombres trouvés :", nombres)  # Affiche : ['12', '34', '56']

🔹 re.sub() : Remplacer des motifs dans une chaîne
#

re.sub() remplace toutes les occurrences du pattern par une nouvelle chaîne.

import re

texte = "Les fruits: pomme, banane, cerise."
resultat = re.sub(r"pomme|banane|cerise", "fruit", texte)
print(resultat)  # Affiche : Les fruits: fruit, fruit, fruit.

🔹 re.split() : Découper une chaîne selon un motif
#

Cette fonction scinde la chaîne aux endroits où le pattern est trouvé.

import re

texte = "Python;Java;C++;JavaScript"
langages = re.split(r";", texte)
print("Liste de langages :", langages)
# Affiche : ['Python', 'Java', 'C++', 'JavaScript']

4. Utilisation des Flags
#

Les flags modifient le comportement de la recherche :

  • re.IGNORECASE (ou re.I) : Ignore la casse.
  • re.MULTILINE (ou re.M) : Permet de traiter chaque ligne indépendamment.
  • re.DOTALL (ou re.S) : Le point (.) matche aussi les sauts de ligne.
import re

texte = "Python est génial.\npython est simple."
resultats = re.findall(r"python", texte, flags=re.IGNORECASE)
print(resultats)  # Affiche : ['Python', 'python']

5. Compilation des RegEx avec re.compile()
#

Pour optimiser vos recherches répétées, compilez votre expression régulière :

import re

pattern = re.compile(r"\b\w{5}\b")  # Mot de 5 lettres
texte = "Hello world, ceci est un test avec plusieurs mots."
matches = pattern.findall(texte)
print("Mots de 5 lettres :", matches)

La compilation permet d’améliorer la lisibilité et les performances, surtout dans des boucles.


6. Trucs et Astuces pour Maîtriser les RegEx
#

  • Utilisez des groupes
    Les parenthèses () vous permettent de capturer des sous-parties d’un match.

    import re
    
    texte = "Nom: Dupont, Prénom: Jean"
    match = re.search(r"Nom: (\w+), Prénom: (\w+)", texte)
    if match:
        print("Nom :", match.group(1))
        print("Prénom :", match.group(2))
    
  • Soyez précis avec les quantificateurs
    + pour “une ou plusieurs fois”, * pour “zéro ou plusieurs fois”, ? pour “zéro ou une fois”.
    Pensez à l’usage de {min,max} pour plus de contrôle.

  • Évitez les pièges des caractères spéciaux
    Certains caractères, comme le point . ou l’étoile *, ont des significations particulières.
    Pour matcher un point littéral, utilisez \. par exemple.


7. Conclusion
#

Les expressions régulières en Python offrent un moyen puissant et flexible de travailler avec le texte. Que vous deviez extraire des informations, valider des formats ou transformer des chaînes, le module re vous donne toutes les clés pour réussir.

N’hésitez pas à expérimenter et à consulter la documentation officielle pour découvrir encore plus de subtilités. Alors, à vos claviers et faites parler vos RegEx ! 😎


Prochain défi ? Créez une fonction qui valide des adresses email avec une RegEx robuste. Bonne programmation et que le pouvoir des RegEx soit avec vous !