Introduction aux expressions régulières en Python
Le traitement de texte est l'une des tâches les plus courantes en programmation. Les expressions régulières deviennent un outil indispensable pour résoudre divers problèmes : parsing de pages HTML, validation de formats de données ou traitement de logs.
En Python, le module intégré re est utilisé pour travailler avec les expressions régulières. Dans ce guide, nous allons explorer en détail l'utilisation des expressions régulières en Python. Nous aborderons des méthodes populaires comme re.search() et re.sub(), et montrerons leur application pratique avec des exemples concrets.
Les bases des expressions régulières
Définition et objectif
Les expressions régulières (Regular Expressions ou RegEx) sont un langage spécialisé pour décrire des motifs de recherche dans le texte. Elles permettent d'effectuer des recherches, des validations et des remplacements de fragments textuels selon des règles précises.
Tâches typiques pour les expressions régulières
Les expressions régulières en Python résolvent un large éventail de problèmes :
- Validation d'adresses email et de numéros de téléphone
- Recherche de toutes les valeurs numériques dans un texte
- Remplacement de caractères indésirables et nettoyage de données
- Extraction de mots ou phrases spécifiques dans de grands textes
- Parsing de données structurées
- Traitement de logs et de fichiers système
Préparation au travail
Importation du module re
Avant de commencer à utiliser les expressions régulières, vous devez importer le module dédié :
import re
Symboles et constructions de base
Pour travailler efficacement avec les expressions régulières, il est essentiel de connaître les symboles de base et leur signification :
| Symbole | Signification |
|---|---|
| . | N'importe quel caractère, sauf saut de ligne |
| \d | N'importe quel chiffre (0-9) |
| \D | N'importe quel caractère non numérique |
| \w | Lettre, chiffre ou tiret bas |
| \W | Tout caractère sauf \w |
| \s | Espace, tabulation, saut de ligne |
| \S | Tout caractère sauf les espaces |
| ^ | Début de ligne |
| $ | Fin de ligne |
| [] | Caractère parmi un ensemble défini |
| * | Zéro ou plusieurs répétitions |
| + | Une ou plusieurs répétitions |
| {n,m} | De n à m répétitions |
Méthodes principales pour travailler avec les expressions régulières
Méthode re.search() pour trouver la première correspondance
La méthode re.search() recherche la première occurrence d'un motif donné dans une chaîne. Elle retourne un objet Match en cas de succès, ou None si aucune correspondance n'est trouvée.
import re
text = "Email : exemple@mail.com"
match = re.search(r'\w+@\w+\.\w+', text)
if match:
print("Email trouvé :", match.group())
Résultat de l'exécution :
Email trouvé : exemple@mail.com
Explication du motif de recherche
Décortiquons le motif utilisé :
\w+— une ou plusieurs lettres, chiffres ou tirets bas@— le symbole arobase (élément obligatoire d'un email)\.— un point (échappé avec un antislash)\w+— le domaine de premier niveau
Méthode re.findall() pour trouver toutes les correspondances
Lorsque vous devez trouver toutes les occurrences d'un motif dans un texte, utilisez la méthode findall(). Elle retourne une liste de toutes les correspondances trouvées.
text = "Prix : 100 euros, 250 euros, 350 euros"
numbers = re.findall(r'\d+', text)
print(numbers) # ['100', '250', '350']
Méthode re.sub() pour remplacer selon un motif
La méthode re.sub() remplace toutes les occurrences d'un motif donné par une chaîne de remplacement.