Module re : recherche, correspondance, extraction et remplacement
re.search(), re.match(), re.findall(), re.sub(), re.compile() pour améliorer les performances.
Module re : recherche, correspondance, extraction et remplacement est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Le module re
Python fournit les expressions régulières via le module intégré re. Les fonctions principales sont search, match, findall et sub.
Savoir laquelle choisir représente déjà la moitié du travail.
import re # always import it firstre.search — trouver n’importe où
re.search(pattern, text) parcourt la chaîne entière à la recherche de la première correspondance et renvoie un objet de correspondance, ou None si rien ne correspond.
import re
m = re.search("\d+", "order 42 shipped")
if m:
print(m.group()) # "42"
print(m.start()) # 6re.match — ancré au début
re.match ne recherche une correspondance qu’au début de la chaîne. Si le motif ne se trouve pas à la position 0, la fonction renvoie None, même s’il apparaît plus loin.
import re
print(re.match("\d+", "42 items")) # matches "42"
print(re.match("\d+", "items 42")) # Nonesearch et match
La différence essentielle :
match— le motif doit commencer à l’index 0search— le motif peut apparaître n’importe où
La plupart du temps, vous voudrez utiliser search. Utilisez match uniquement lorsque vous devez vérifier spécifiquement un préfixe.
re.findall — obtenir toutes les correspondances
re.findall renvoie une liste de toutes les correspondances non chevauchantes sous forme de chaînes, et non d’objets de correspondance. C’est idéal pour les tâches d’extraction.
import re
emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails) # ["a@x.com", "b@y.org"]findall avec des groupes
Si votre motif contient des groupes de capture, findall renvoie les parties capturées au lieu de la correspondance entière — une source fréquente de surprise.
Ici, chaque n-uplet contient l’indicatif régional et le reste du numéro.
import re
print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]re.finditer — objets de correspondance
Lorsque vous avez besoin des positions ou des groupes de chaque correspondance, utilisez re.finditer. Cette fonction produit des objets de correspondance que vous pouvez parcourir progressivement.
import re
for m in re.finditer("\d+", "a1 b22 c333"):
print(m.group(), "at", m.start())re.sub — rechercher et remplacer
re.sub(pattern, replacement, text) remplace chaque correspondance par la chaîne de remplacement et renvoie une nouvelle chaîne.
Cette fonction est essentielle au nettoyage du texte : masquage, normalisation et suppression.
import re
clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean) # "Room # and #"sub avec des références arrière et des fonctions
Le remplacement peut faire référence aux groupes capturés avec \1, ou être une fonction permettant d’appliquer une logique dynamique.
import re
# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))
# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))re.compile — réutiliser les motifs
Lorsque vous utilisez souvent un motif, par exemple dans une boucle, re.compile le construit une seule fois sous forme d’objet de motif réutilisable. L’exécution est ainsi plus rapide et le code plus lisible.
import re
num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
print(num.findall(line))Indicateurs utiles
Les indicateurs modifient le comportement de la recherche :
re.IGNORECASE— insensible à la cassere.MULTILINE—^/$correspondent à chaque lignere.DOTALL—.correspond également aux sauts de ligne
import re
print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]Vérification rapide : search et findall
Vous avez besoin d’une liste de tous les numéros de téléphone qui apparaissent n’importe où dans un document.
Récapitulatif : le module re
Vous connaissez maintenant les principales fonctions d’expressions régulières :
re.search— première correspondance n’importe où (objet de correspondance)re.match— correspondance uniquement au débutre.findall— liste de toutes les correspondances (les groupes modifient le résultat)re.finditer— objets de correspondance avec leurs positionsre.sub— remplacer les correspondances, avec des références arrière ou une fonctionre.compileet les indicateurs pour réutiliser les motifs et contrôler la recherche
Ensuite : les groupes de capture et les groupes nommés.
Questions Fréquemment Posées
La leçon « Module re : recherche, correspondance, extraction et remplacement » est-elle gratuite ?
Oui — le texte complet de « Module re : recherche, correspondance, extraction et remplacement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Module re : recherche, correspondance, extraction et remplacement » ?
re.search(), re.match(), re.findall(), re.sub(), re.compile() pour améliorer les performances. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Module re : recherche, correspondance, extraction et remplacement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Motifs d’expressions régulières et classes de caractères
- Module re : recherche, correspondance, extraction et remplacement
- Groupes capturants et groupes nommés
- Nettoyer le texte pour l’IA avec les expressions régulières