0Pricing
Python Academy · Leçon

re.sub, indicateurs et motifs compilés

Remplacez du texte, utilisez des indicateurs comme IGNORECASE et compilez des motifs pour les réutiliser.

re.sub, indicateurs et motifs compilés est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Introduction

re.sub remplace les correspondances. Les drapeaux modifient le comportement des correspondances. Les modèles compilés sont efficaces lors d'utilisations répétées.

re.sub — Notions de base

re.sub(pattern, repl, string) remplace toutes les correspondances par repl. Le quatrième argument count= limite le nombre de remplacements.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

re.sub avec des groupes

Utilisez \1, \2 ou \g<1> dans le remplacement pour insérer les groupes capturés. Utilisez \g pour les groupes nommés.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

re.sub avec une fonction

Le remplacement peut être un appelable : f(match) → chaîne de remplacement. Cela permet des transformations complexes.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

Rend le modèle insensible à la casse. r'hello' avec re.I correspond à 'HELLO', 'Hello', etc.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

Fait correspondre ^ et $ au début et à la fin de chaque LINE plutôt qu'à ceux de la chaîne entière.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

Permet à . de correspondre également aux sauts de ligne. Sans ce drapeau, . s'arrête aux limites de ligne.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

Autorise les commentaires et les espaces dans le modèle afin d'en améliorer la lisibilité. Les espaces sont ignorés : utilisez \ + espace pour représenter un espace littéral.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

Combiner les drapeaux

Combinez les drapeaux avec | : re.I | re.M. Vous pouvez aussi utiliser les drapeaux intégrés (?im) au début du modèle.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

re.compile pour les performances

Compilez un modèle une seule fois avec re.compile(). Appelez les méthodes sur l'objet compilé : pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string) échappe tous les caractères spéciaux des expressions régulières dans une chaîne, qui peut ainsi être utilisée comme modèle littéral.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

Vérification rapide

Quel drapeau permet à . de correspondre aux sauts de ligne dans les expressions régulières Python ?

Récapitulatif

re.sub : remplacer avec une chaîne, des groupes ou une fonction. Drapeaux : re.I (casse), re.M (multiligne ^/$), re.S (le point correspond à \n), re.X (mode détaillé). Compilez les modèles pour les réutiliser.

Continuez

Excellent travail ! La prochaine leçon vous attend.

Questions Fréquemment Posées

La leçon « re.sub, indicateurs et motifs compilés » est-elle gratuite ?

Oui — le texte complet de « re.sub, indicateurs et motifs compilés » 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 Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « re.sub, indicateurs et motifs compilés » ?

Remplacez du texte, utilisez des indicateurs comme IGNORECASE et compilez des motifs pour les réutiliser. Tu pratiques Python Academy 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 Python Academy ?

Aucune expérience préalable n'est requise. Python Academy 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 4 sur 4.

Combien de temps prend la leçon « re.sub, indicateurs et motifs compilés » ?

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 Python Academy ?

Oui. Chaque leçon Python Academy 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

  1. Fondamentaux des expressions régulières
  2. Utiliser re.match, re.search et re.findall
  3. Groupes et captures nommées
  4. re.sub, indicateurs et motifs compilés
← Retour à Python Academy