0Pricing
Python Academy · Lekcja

Grupy i nazwane przechwytywanie

Proszę wyodrębniać dane za pomocą grup przechwytujących i składni nazwanych grup.

Grupy i nazwane przechwytywanie to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Grupy przechwytujące wyodrębniają określone fragmenty dopasowania. Grupy nazwane sprawiają, że wyodrębnione dane są łatwiejsze do zrozumienia.

Podstawowa grupa przechwytująca

Nawiasy () tworzą grupę przechwytującą. m.group(1) zwraca dopasowanie pierwszej grupy.
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() zwraca wszystkie grupy przechwytujące jako krotkę.
import re
m = re.search(r'(\w+)@(\w+)\.(\w+)', 'user@example.com')
if m: print(m.groups())

Grupy nazwane

(?Ppattern) tworzy grupę nazwaną. Uzyskaj do niej dostęp za pomocą m.group('name') albo 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())

Grupy nieprzechwytujące

(?:pattern) grupuje wyrażenie bez przechwytywania. Jest przydatne, gdy grupowanie jest potrzebne do użycia kwantyfikatorów, ale samo dopasowanie nie jest potrzebne.
import re
print(re.findall(r'(?:cat|dog)s?', 'cats dogs cat dog'))

Odwołania wsteczne

\1 wewnątrz wzorca odwołuje się do tego, co dopasowała grupa 1. Jest to przydatne do wyszukiwania powtarzających się słów.
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 z grupami

Gdy wzorzec zawiera grupy, findall zwraca listę krotek grup, a nie pełnych dopasowań.
import re
result = re.findall(r'(\w+)=(\w+)', 'x=1 y=2 z=3')
print(result)

Używanie grup w re.sub()

W re.sub() wyrażenie \1 lub \g wstawia przechwycone grupy do ciągu zastępującego.
import re
result = re.sub(r'(\w+)\s(\w+)', r'\2 \1', 'John Smith')
print(result)

Lookahead (?= )

(?=expr) to dodatnie wyprzedzenie — dopasowuje pozycję, za którą występuje expr, bez zużywania tego wyrażenia.
import re
# Prices followed by USD
print(re.findall(r'\d+(?= USD)', '100 USD 200 EUR 300 USD'))

Lookbehind (?<= )

(?<=expr) to dodatnie spoglądanie wstecz — dopasowuje pozycję poprzedzoną przez expr, bez zużywania tego wyrażenia.
import re
print(re.findall(r'(?<=\$)\d+', 'paid $100 and $200'))

Nazwane odwołanie wsteczne

(?P=name) we wzorcu odwołuje się do wartości nazwanej grupy. Jest przydatne do dopasowywania znaczników zamykających.
import re
m = re.search(r'<(?P<tag>\w+)>.*?</(?P=tag)>', '<b>hello</b>')
if m: print(m.group())

Szybki test

Jak uzyskać dostęp do nazwanej grupy przechwytującej o nazwie 'year' z obiektu dopasowania m?

Podsumowanie

Grupy () przechwytują fragmenty. m.group(1), m.groups(), m.groupdict(). Nazwane: (?P). Nieprzechwytujące: (?:). Odwołania wsteczne: \1 lub \g w zastąpieniach.

Działaj dalej

Świetna praca! Czeka na Ciebie następna lekcja.

Często zadawane pytania

Czy lekcja „Grupy i nazwane przechwytywanie” jest bezpłatna?

Tak — pełny tekst „Grupy i nazwane przechwytywanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Grupy i nazwane przechwytywanie”?

Proszę wyodrębniać dane za pomocą grup przechwytujących i składni nazwanych grup. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Grupy i nazwane przechwytywanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy wyrażeń regularnych
  2. Używanie re.match, re.search i re.findall
  3. Grupy i nazwane przechwytywanie
  4. re.sub, flagi i skompilowane wzorce
← Powrót do Python Academy