0Pricing
Python Academy · Lekcja

Używanie re.match, re.search i re.findall

Proszę stosować podstawowe funkcje re do wyszukiwania wzorców w napisach.

Używanie re.match, re.search i re.findall to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 2 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

Moduł re udostępnia kilka funkcji służących do stosowania wzorców do ciągów znaków.

re.match() — początek ciągu

re.match(pattern, string) dopasowuje wzorzec tylko na POCZĄTKU ciągu. Zwraca obiekt Match albo None.
import re
print(re.match(r'\d+', '123abc'))  # match
print(re.match(r'\d+', 'abc123'))  # None

re.search() — w dowolnym miejscu

re.search(pattern, string) znajduje PIERWSZE dopasowanie w dowolnym miejscu ciągu. Zwraca Match albo None.
import re
m = re.search(r'\d+', 'abc 123 def')
if m: print(m.group())

re.findall() — wszystkie dopasowania

re.findall(pattern, string) zwraca listę wszystkich niepokrywających się dopasowań jako ciągi znaków.
import re
print(re.findall(r'\d+', 'one 1 two 22 three 333'))

re.finditer() — iterator

re.finditer() działa podobnie jak findall(), ale zwraca iterator obiektów Match — jest oszczędny pamięciowo dla dużych ciągów.
import re
for m in re.finditer(r'\d+', 'x1 y22 z333'):
    print(m.group(), m.start(), m.end())

Metody obiektu Match

m.group() zwraca dopasowany ciąg. m.start() i m.end() zwracają pozycje. m.span() zwraca (start, end).
import re
m = re.search(r'(\w+)@(\w+)', 'send to user@example')
if m:
    print(m.group(), m.group(1), m.group(2))

re.fullmatch()

re.fullmatch(pattern, string) wymaga, aby wzorzec dopasował CAŁY ciąg.
import re
print(re.fullmatch(r'\d+', '123'))    # match
print(re.fullmatch(r'\d+', '123abc'))  # None

re.split()

re.split(r'\s+', string) dzieli ciąg zgodnie ze wzorcem. r'[,;\s]+' dzieli po przecinkach, średnikach i spacjach.
import re
print(re.split(r'[,;\s]+', 'one,two; three four'))

re.sub() — zastępowanie

re.sub(pattern, repl, string) zastępuje dopasowania. repl może być ciągiem znaków albo funkcją.
import re
print(re.sub(r'\d+', 'NUM', 'I have 3 cats and 12 dogs'))

Skompilowane wzorce

pattern = re.compile(r'\d+') kompiluje wzorzec raz. Używaj pattern.findall(), .search() itd. — jest to szybsze przy wielokrotnym użyciu.
import re
digits = re.compile(r'\d+')
print(digits.findall('abc 123 def 456'))

Flagi

re.IGNORECASE (re.I), re.MULTILINE (re.M) i re.DOTALL (re.S) modyfikują sposób dopasowywania.
import re
print(re.findall(r'hello', 'HELLO World', re.IGNORECASE))

Szybki test

Jaka jest różnica między re.match() a re.search()?

Podsumowanie

re.match (tylko początek), re.search (pierwsze dopasowanie w dowolnym miejscu), re.findall (wszystkie jako lista), re.finditer (wszystkie jako obiekty Match), re.sub (zastępowanie), re.compile (ponowne użycie wzorca).

Działaj dalej

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

Często zadawane pytania

Czy lekcja „Używanie re.match, re.search i re.findall” jest bezpłatna?

Tak — pełny tekst „Używanie re.match, re.search i re.findall” 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 „Używanie re.match, re.search i re.findall”?

Proszę stosować podstawowe funkcje re do wyszukiwania wzorców w napisach. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Używanie re.match, re.search i re.findall”?

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