Groupes capturants et groupes nommés
Parenthèses de capture, groupes nommés (?P ...), re.fullmatch(), assertions avant et arrière.
Groupes capturants et groupes nommés est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 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.
Pourquoi utiliser des groupes
Les groupes permettent d’isoler des parties d’une correspondance afin d’extraire exactement l’élément voulu — l’indicatif régional d’un numéro de téléphone, l’année d’une date ou le nom d’utilisateur d’une adresse e-mail.
Cette leçon présente les groupes de capture, les groupes nommés, les groupes non capturants et les assertions de position.
Groupes de capture avec ( )
Entourez une partie du motif de parenthèses pour la capturer. La correspondance entière ainsi que chaque groupe deviennent accessibles depuis l’objet de correspondance.
import re
m = re.search("(\d{4})-(\d{2})-(\d{2})", "Date: 2026-05-29")
print(m.group()) # "2026-05-29" (whole match)
print(m.group(1)) # "2026"
print(m.group(2)) # "05"match.group, groups, groupdict
Accesseurs utiles :
m.group(0)— la correspondance entièrem.group(n)— la n-ième capturem.groups()— un tuple contenant toutes les captures
import re
m = re.search("(\d{4})-(\d{2})-(\d{2})", "2026-05-29")
print(m.groups()) # ("2026", "05", "29")
year, month, day = m.groups()Groupes nommés avec (?P<name>...)
Le recours aux numéros de groupes devient fragile. Les groupes nommés utilisent (?P<name>...), ce qui permet de désigner les captures par un nom explicite.
import re
m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.group("year")) # "2026"
print(m.group("month")) # "05"groupdict pour une sortie structurée
m.groupdict() renvoie tous les groupes nommés sous forme de dictionnaire — idéal pour transformer du texte correspondant en enregistrements structurés.
import re
m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.groupdict())
# {"year": "2026", "month": "05", "day": "29"}Groupes non capturants (?:...)
Parfois, vous avez besoin de parenthèses uniquement pour regrouper des éléments, par exemple pour appliquer un quantificateur, mais vous ne voulez NOT pas effectuer de capture. Utilisez (?:...).
Vos numéros de groupes restent ainsi bien organisés.
import re
# Group "ab" so + applies, but do not capture it
m = re.search("(?:ab)+(\d+)", "ababab42")
print(m.group(1)) # "42" -> group 1 is the digits, not "ab"Références arrière
Une référence arrière \1 correspond au même texte qu’un groupe a capturé précédemment. C’est utile pour trouver des mots répétés.
import re
# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]Anticipation (?=...)
Une anticipation positive (?=...) affirme ce qui doit suivre, sans le consommer. Le texte affirmé ne fait pas partie de la correspondance.
Ici, nous faisons correspondre un nombre uniquement s’il est suivi de « px ».
import re
print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"] -> "20" skipped (not followed by px)Anticipation négative (?!...)
Une anticipation négative (?!...) affirme ce qui ne doit pas suivre. Faites correspondre le nombre uniquement s’il n’est pas suivi de « px ».
import re
print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by pxAssertions sur le contexte précédent (?<=...) et (?<!...)
Une assertion sur le contexte précédent indique ce qui vient avant la correspondance sans le consommer :
(?<=...)positive — doit être précédée de(?<!...)négative — ne doit pas être précédée de
Ici, nous extrayons des montants précédés d’un signe dollar, sans capturer le signe.
import re
print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"] -> only the amount after $Combiner les groupes et les assertions de contexte
Les extracteurs réels combinent ces outils. Ce motif extrait un prix nommé qui doit être précédé d’un symbole monétaire et suivi d’une partie décimale :
import re
text = "Total: $1299.99 paid"
m = re.search("(?<=\$)(?P<amount>\d+)\.(?P<cents>\d{2})", text)
print(m.group("amount"), m.group("cents")) # 1299 99Vérification rapide : groupes nommés
Vous souhaitez extraire les correspondances à l’aide d’un nom lisible comme « year » plutôt qu’à l’aide d’un nombre.
Récapitulatif : groupes et assertions de contexte
Vous pouvez maintenant extraire une structure précise du texte :
( )groupes capturants avecm.group(n)etm.groups()(?P<name>...)groupes nommés avecm.groupdict()(?:...)groupes non capturants pour regrouper proprement- Références arrière
\1pour les répétitions - Anticipation
(?=)/(?!)et contexte précédent(?<=)/(?<!)
Ensuite : tout combiner pour nettoyer le texte destiné à l’IA.
Questions Fréquemment Posées
La leçon « Groupes capturants et groupes nommés » est-elle gratuite ?
Oui — le texte complet de « Groupes capturants et groupes nommé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 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 « Groupes capturants et groupes nommés » ?
Parenthèses de capture, groupes nommés (?P ...), re.fullmatch(), assertions avant et arrière. 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 3 sur 4.
Combien de temps prend la leçon « Groupes capturants et groupes nommé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 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