Lär Er AI med Python · Lektion

Fångande grupper och namngivna grupper

Parenteser för fångst, namngivna grupper med (?P ...), re.fullmatch(), lookahead och lookbehind.

Lektion 3 av 413 steg

Fångande grupper och namngivna grupper är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Varför grupper?

Grupper låter dig isolera delar av en träff så att du kan extrahera exakt den del du vill ha – riktnumret från ett telefonnummer, året från ett datum eller användarnamnet från en e-postadress.

I den här lektionen behandlas fångande grupper, namngivna grupper, icke-fångande grupper och lookarounds.

Fångande grupper med ( )

Omslut en del av ett mönster med parenteser för att fånga den. Hela träffen och varje grupp blir tillgängliga via Match-objektet.

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

Användbara åtkomstmetoder:

  • m.group(0) — hela träffen
  • m.group(n) — den n:te fångsten
  • m.groups() — en tupel med alla fångster
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()

Namngivna grupper med (?P<name>...)

Numrering av grupper kan lätt bli fel. Namngivna grupper använder (?P<name>...) så att du refererar till fångster med ett meningsfullt namn.

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 strukturerade resultat

m.groupdict() returnerar alla namngivna grupper som en ordbok – perfekt för att omvandla matchad text till strukturerade poster.

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"}

Icke-fångande grupper (?:...)

Ibland behöver du parenteser endast för gruppering, till exempel för att tillämpa en kvantifierare, men du vill INTE skapa en fångst. Använd (?:...).

Då hålls gruppnumreringen ren.

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"

Bakreferenser

En bakreferens \1 matchar samma text som en grupp fångade tidigare. Det är användbart för att hitta upprepade ord.

import re

# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]

Lookahead (?=...)

En positiv lookahead (?=...) anger vad som måste följa, utan att konsumera det. Den text som kontrolleras blir inte en del av matchningen.

Här matchar vi ett tal endast om det följs av "px".

import re

print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"]  -> "20" skipped (not followed by px)

Negativ lookahead (?!...)

En negativ lookahead (?!...) anger vad som inte får följa. Matcha talet endast om det inte följs av "px".

import re

print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by px

Lookbehind (?<=...) och (?<!...)

Lookbehind anger vad som kommer före matchningen utan att konsumera det:

  • (?<=...) positiv — måste föregås av
  • (?<!...) negativ — får inte föregås av

Här extraherar vi belopp som föregås av ett dollartecken, utan att fånga själva tecknet.

import re

print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"]  -> only the amount after $

Kombinera grupper och lookarounds

Verkliga extraherare kombinerar dessa verktyg. Det här mönstret extraherar ett namngivet pris som måste föregås av en valutasymbol och följas av en decimaldel:

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 99

Snabbkontroll: Namngivna grupper

Du vill extrahera matchningar med ett lättläst namn som "year" i stället för ett nummer.

Sammanfattning: Grupper och lookarounds

Nu kan du extrahera en exakt struktur från text:

  • ( ) fångande grupper med m.group(n) och m.groups()
  • (?P<name>...) namngivna grupper med m.groupdict()
  • (?:...) icke-fångande grupper för ren gruppering
  • Bakåtreferenser \1 för upprepningar
  • Lookahead (?=)/(?!) och lookbehind (?<=)/(?<!)

Nästa steg: att sätta ihop allt för att rensa text för AI.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
53
Lektioner
225

Vanliga frågor

Är lektionen ”Fångande grupper och namngivna grupper” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Fångande grupper och namngivna grupper”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad lär jag mig i ”Fångande grupper och namngivna grupper”?

Parenteser för fångst, namngivna grupper med (?P ...), re.fullmatch(), lookahead och lookbehind. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?

Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Fångande grupper och namngivna grupper”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?

Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Regex-mönster och teckenklasser
  2. Modulen re: search, match, findall, sub
  3. Fångande grupper och namngivna grupper
  4. Rensa text för AI med regex
← Tillbaka till Lär Er AI med Python