Capturing groups en benoemde groepen
Haakjes voor capturing, benoemde groepen met (?P ...), re.fullmatch() en lookahead/lookbehind.
Capturing groups en benoemde groepen is een gratis Leer AI met Python-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Waarom groepen?
Met groepen kun je delen van een treffer isoleren, zodat je precies het gewenste onderdeel kunt extraheren — het netnummer uit een telefoonnummer, het jaar uit een datum of de gebruikersnaam uit een e-mailadres.
Deze les behandelt vangende, benoemde en niet-vangende groepen en contextcontroles.
Vangende groepen met ( )
Wikkel een deel van een patroon tussen haakjes om het te vangen. De volledige treffer en elke groep worden toegankelijk via het Match-object.
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
Handige toegangsmethoden:
m.group(0)— de volledige trefferm.group(n)— de n-de vastleggingm.groups()— een tupel met alle vastleggingen
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()Benoemde groepen met (?P<name>...)
Het nummeren van groepen wordt snel kwetsbaar. Met benoemde groepen gebruik je (?P<name>...), zodat je met een betekenisvolle naam naar vastleggingen verwijst.
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 voor gestructureerde uitvoer
m.groupdict() retourneert alle benoemde groepen als een woordenboek — ideaal om overeenkomende tekst in gestructureerde gegevensrecords om te zetten.
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"}Niet-vangende groepen (?:...)
Soms heb je haakjes alleen nodig om te groeperen (bijvoorbeeld om een kwantor toe te passen), maar wil je NIET vastleggen. Gebruik dan (?:...).
Zo blijft de nummering van je groepen overzichtelijk.
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"Terugverwijzingen
Een terugverwijzing \1 komt overeen met dezelfde tekst die een groep eerder heeft vastgelegd. Handig om herhaalde woorden te vinden.
import re
# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]Lookahead (?=...)
Een positieve lookahead (?=...) controleert wat er moet volgen, zonder dat te verbruiken. De gecontroleerde tekst maakt geen deel uit van de treffer.
Hier vinden we een getal alleen als het wordt gevolgd door "px".
import re
print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"] -> "20" skipped (not followed by px)Negatieve lookahead (?!...)
Een negatieve lookahead (?!...) controleert wat er niet mag volgen. We vinden het getal alleen als het niet wordt gevolgd door "px".
import re
print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by pxLookbehind (?<=...) en (?<!...)
Lookbehind controleert wat er vóór de treffer staat zonder dat te verbruiken:
(?<=...)positief — moet worden voorafgegaan door(?<!...)negatief — mag niet worden voorafgegaan door
Hier halen we bedragen op die worden voorafgegaan door een dollarteken, zonder het teken vast te leggen.
import re
print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"] -> only the amount after $Groepen en lookarounds combineren
In echte extractors combineer je deze hulpmiddelen. Dit patroon haalt een benoemde prijs op die moet worden voorafgegaan door een valutasymbool en gevolgd door een decimaal deel:
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 99Korte controle: benoemde groepen
Je wilt treffers ophalen met een duidelijke naam zoals "year" in plaats van een nummer.
Terugblik: groepen en lookarounds
Je kunt nu een precieze structuur uit tekst halen:
( )vastleggende groepen metm.group(n)enm.groups()(?P<name>...)benoemde groepen metm.groupdict()(?:...)niet-vastleggende groepen voor overzichtelijke groepering- Terugverwijzingen met
\1voor herhalingen - Lookahead
(?=)/(?!)en lookbehind(?<=)/(?<!)
Volgende onderwerp: alles combineren om tekst voor AI op te schonen.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “Capturing groups en benoemde groepen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Capturing groups en benoemde groepen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “Capturing groups en benoemde groepen”?
Haakjes voor capturing, benoemde groepen met (?P ...), re.fullmatch() en lookahead/lookbehind. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Capturing groups en benoemde groepen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Regex-patronen en tekenklassen
- De module re: search, match, findall, sub
- Capturing groups en benoemde groepen
- Tekst opschonen voor AI met regex