Python Academy · Lektion

Grupper och namngivna fångster

Extrahera data med fångstgrupper och syntax för namngivna grupper.

Lektion 3 av 414 steg

Grupper och namngivna fångster är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Introduktion

Fångstgrupper extraherar specifika delar av en matchning. Namngivna grupper gör de extraherade uppgifterna självbeskrivande.

Grundläggande fångstgrupp

Parenteser () skapar en fångstgrupp. m.group(1) returnerar matchningen för den första gruppen.
import re
m = re.search(r'(\d{4})-(\d{2})-(\d{2})', '2024-01-15')
if m: print(m.group(1), m.group(2), m.group(3))

m.groups()

m.groups() returnerar alla fångstgrupper som en tupel.
import re
m = re.search(r'(\w+)@(\w+)\.(\w+)', 'user@example.com')
if m: print(m.groups())

Namngivna grupper

(?Ppattern) skapar en namngiven grupp. Du kommer åt den med m.group('name') eller m.groupdict().
import re
m = re.search(
    r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',
    '2024-01-15'
)
if m: print(m.groupdict())

Icke-fångande grupper

(?:pattern) grupperar utan att fånga. Användbart när du behöver gruppering för kvantifierare men inte behöver själva matchningen.
import re
print(re.findall(r'(?:cat|dog)s?', 'cats dogs cat dog'))

Bakåtreferenser

\1 i ett mönster hänvisar till det som grupp 1 matchade. Användbart för att hitta upprepade ord.
import re
# Match repeated words
m = re.search(r'\b(\w+)\s+\1\b', 'the the quick brown', re.IGNORECASE)
if m: print('repeated:', m.group())

findall med grupper

När mönstret innehåller grupper returnerar findall en lista med gruppetupler, inte fullständiga matchningar.
import re
result = re.findall(r'(\w+)=(\w+)', 'x=1 y=2 z=3')
print(result)

Använda grupper i re.sub()

I re.sub() infogar \1 eller \g fångade grupper i ersättningssträngen.
import re
result = re.sub(r'(\w+)\s(\w+)', r'\2 \1', 'John Smith')
print(result)

Lookahead (?= )

(?=expr) är en positiv lookahead – matchar en position där expr följer, utan att konsumera den.
import re
# Prices followed by USD
print(re.findall(r'\d+(?= USD)', '100 USD 200 EUR 300 USD'))

Lookbehind (?<= )

(?<=expr) är en positiv lookbehind – matchar en position som föregås av expr, utan att konsumera den.
import re
print(re.findall(r'(?<=\$)\d+', 'paid $100 and $200'))

Namngiven bakåtreferens

(?P=name) i mönstret hänvisar till värdet i en namngiven grupp. Användbart för att matcha avslutande taggar.
import re
m = re.search(r'<(?P<tag>\w+)>.*?</(?P=tag)>', '<b>hello</b>')
if m: print(m.group())

Snabbkontroll

Hur kommer du åt en namngiven fångstgrupp med namnet 'year' från ett matchningsobjekt m?

Sammanfattning

Grupper () fångar delar. m.group(1), m.groups(), m.groupdict(). Namngiven: (?P). Icke-fångande: (?:). Bakåtreferenser: \1 eller \g i ersättningar.

Fortsätt

Bra jobbat! Nästa lektion väntar.
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
76
Lektioner
320

Vanliga frågor

Är lektionen ”Grupper och namngivna fångster” gratis?

Ja – hela texten till ”Grupper och namngivna fångster” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Grupper och namngivna fångster”?

Extrahera data med fångstgrupper och syntax för namngivna grupper. Ni övar på Python Academy 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 Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy 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 ”Grupper och namngivna fångster”?

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

Ja. Varje Python Academy-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. Grunderna i reguljära uttryck
  2. Använda re.match, re.search och re.findall
  3. Grupper och namngivna fångster
  4. re.sub, flaggor och kompilerade mönster
← Tillbaka till Python Academy