Comment utiliser les expressions régulières (Regex) en Python
Maîtrisez les expressions régulières Python à l'aide du module re intégré. Apprenez la correspondance de chaînes, la recherche de modèles, la recherche de toutes les occurrences et le remplacement de texte.
Aperçu
Les expressions régulières, communément appelées regex, sont des modèles puissants utilisés pour faire correspondre, rechercher et manipuler des chaînes de texte en fonction de modèles spécifiques. Regex est largement utilisé pour la vérification des e-mails, la validation des numéros de téléphone, le scraping Web, l'analyse des journaux et les tâches de recherche et de remplacement de texte. Python fournit des capacités complètes d'expression régulière via le module `re` intégré.
Le module `re` propose plusieurs fonctions principales en fonction de votre objectif. La fonction `re.search(pattern, string)` analyse une chaîne et renvoie un objet de correspondance pour la première occurrence du modèle. La fonction `re.match(pattern, string)` est similaire mais recherche uniquement à partir du tout début de la chaîne. Si vous souhaitez récupérer toutes les instances d'un modèle dans un bloc de texte, `re.findall(pattern, string)` les renvoie sous forme de liste de chaînes.
Les modèles Regex utilisent des métacaractères spéciaux comme `\d` pour les chiffres, `\w` pour les caractères alphanumériques, `+` pour une ou plusieurs occurrences et `*` pour zéro ou plusieurs. Lors de l'écriture d'une expression régulière en Python, il est courant d'utiliser des littéraux de chaîne bruts (préfixés par « r », tels que « r"\d+"`) pour empêcher Python de traiter les barres obliques inverses comme des séquences d'échappement.
Sortie de code et d'exécution
Ce script montre la validation des structures de format, l'extraction de jetons numériques et le remplacement des modèles correspondants à l'aide du module re.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Mise en œuvre étape par étape
- Importez le module re intégré.
- Définissez des modèles de recherche d'expressions régulières à l'aide de chaînes brutes, comme r"\d+" pour éviter les problèmes de séquence d'échappement.
- Utilisez re.search() pour trouver la première occurrence ou re.findall() pour collecter toutes les sous-chaînes correspondantes.
- Utilisez re.sub(pattern, replacement, string) pour effectuer des remplacements basés sur des modèles dans le texte.
Foire aux questions
Quel est l'avantage d'utiliser des chaînes brutes (r"...") pour les modèles d'expressions régulières ?
Les chaînes brutes traitent les barres obliques inverses comme des caractères littéraux plutôt que comme des caractères d'échappement. Par exemple, r"\n" représente une barre oblique inverse suivie d'un "n", tandis que "\n" représente un caractère de nouvelle ligne.
Comment puis-je vérifier si une correspondance d’expression régulière a réussi ?
re.search() et re.match() renvoient un objet de correspondance en cas de succès, ou None si aucune correspondance n'est trouvée. Vous devez vérifier le résultat à l'aide d'une instruction conditionnelle (par exemple, if match :).
Sujets connexes
Découvrez comment remplacer des caractères ou des sous-chaînes dans des chaînes Python. Maîtrisez la méthode replace(), comptez les limites et utilisez la traduction pour plusieurs caractères.
Comment diviser une chaîne en PythonApprenez à diviser une chaîne en une liste en Python à l'aide de la méthode split(). Explorez le fractionnement par espaces, virgules, nouvelles lignes et limitez le nombre de fractionnements.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Boucles Python
Apprenez à utiliser les boucles Python pour parcourir les données. Maîtrisez les bonnes pratiques pour les boucles, while, break, continue et loop avec des exemples interactifs.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.