Capturing Groups und Named Groups
Klammern zum Erfassen, benannte Gruppen mit (?P ...), re.fullmatch(), Lookahead und Lookbehind.
Capturing Groups und Named Groups ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Warum Gruppen?
Gruppen ermöglichen es Ihnen, Teile eines Treffers zu isolieren, damit Sie genau den gewünschten Abschnitt extrahieren können – die Vorwahl einer Telefonnummer, das Jahr aus einem Datum, den Benutzernamen aus einer E-Mail-Adresse.
Diese Lektion behandelt erfassende, benannte und nicht erfassende Gruppen sowie Lookarounds.
Erfassende Gruppen mit ( )
Setzen Sie einen Teil eines Musters in Klammern, um ihn zu erfassen. Der gesamte Treffer und jede Gruppe werden über das Match-Objekt zugänglich.
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
Nützliche Zugriffsmethoden:
m.group(0)— gesamter Trefferm.group(n)— die n-te erfasste Gruppem.groups()— ein Tupel aller Erfassungen
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()Benannte Gruppen mit (?P<name>...)
Die Nummerierung von Gruppen wird schnell unübersichtlich. Benannte Gruppen verwenden (?P<name>...), sodass Sie auf Erfassungen über einen aussagekräftigen Namen verweisen.
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 für strukturierte Ausgabe
m.groupdict() gibt alle benannten Gruppen als Dictionary zurück – ideal, um übereinstimmenden Text in strukturierte Datensätze umzuwandeln.
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"}Nicht erfassende Gruppen (?:...)
Manchmal benötigen Sie Klammern nur zur Gruppierung (z. B. um einen Quantifizierer anzuwenden), möchten aber KEINE Erfassung. Verwenden Sie (?:...).
So bleibt die Gruppennummerierung übersichtlich.
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ückverweise
Ein Rückverweis \1 entspricht demselben Text, den eine Gruppe zuvor erfasst hat. Nützlich, um wiederholte Wörter zu finden.
import re
# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]Lookahead (?=...)
Ein positiver Lookahead (?=...) stellt fest, was folgen muss, ohne es zu konsumieren. Der festgestellte Text ist nicht Teil des Treffers.
Hier wird eine Zahl nur dann gefunden, wenn auf sie „px“ folgt.
import re
print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"] -> "20" skipped (not followed by px)Negativer Lookahead (?!...)
Ein negativer Lookahead (?!...) stellt fest, was NICHT folgen darf. Die Zahl wird nur gefunden, wenn NICHT „px“ folgt.
import re
print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by pxLookbehind (?<=...) und (?<!...)
Ein Lookbehind stellt fest, was vor dem Treffer steht, ohne es zu konsumieren:
(?<=...)positiv — muss vorangestellt sein(?<!...)negativ — darf NICHT vorangestellt sein
Hier werden Beträge gefunden, denen ein Dollarzeichen vorangestellt ist, ohne das Zeichen mitzuerfassen.
import re
print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"] -> only the amount after $Gruppen und Lookarounds kombinieren
In der Praxis kombinieren Extraktoren diese Werkzeuge. Dieses Muster extrahiert einen benannten Preis, dem ein Währungssymbol vorangestellt sein muss und auf den ein Dezimalteil folgen muss:
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 99Kurztest: Benannte Gruppen
Sie möchten Treffer über einen lesbaren Namen wie „year“ statt über eine Nummer extrahieren.
Zusammenfassung: Gruppen und Lookarounds
Sie können jetzt präzise Strukturen aus Text extrahieren:
( )-Gruppen zum Erfassen mitm.group(n)undm.groups()- Benannte Gruppen mit
(?P<name>...)undm.groupdict() (?:...)-Gruppen ohne Erfassung für übersichtliche Gruppierungen- Rückverweise
\1für Wiederholungen - Lookahead
(?=)/(?!)und Lookbehind(?<=)/(?<!)
Als Nächstes setzen Sie alles zusammen, um Text für KI zu bereinigen.
Häufig gestellte Fragen
Ist die Lektion „Capturing Groups und Named Groups“ kostenlos?
Ja — der vollständige Text von „Capturing Groups und Named Groups“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Capturing Groups und Named Groups“?
Klammern zum Erfassen, benannte Gruppen mit (?P ...), re.fullmatch(), Lookahead und Lookbehind. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Capturing Groups und Named Groups“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Regex-Muster und Zeichenklassen
- Modul re: search, match, findall, sub
- Capturing Groups und Named Groups
- Textbereinigung für KI mit Regex