Python Regex: Dopasowywanie wzorców za pomocą modułu re
Opanuj wyrażenia regularne (Regex) w Pythonie. Naucz się wyszukiwać, dopasowywać, dzielić i zastępować dane w postaci ciągów znaków, korzystając z wbudowanej biblioteki re.
Przegląd
Wyrażenia regularne (często skracane do wyrażenia regularnego) to minijęzyk używany do zaawansowanego wyszukiwania tekstu, dopasowywania ciągów znaków i manipulacji. Zamiast sprawdzać proste wartości ciągów, regex pozwala definiować złożone wzorce do wyszukiwania w ogromnych treściach tekstowych. Na przykład znalezienie wszystkich adresów e-mail, numerów telefonów lub adresów URL w dokumencie jest łatwe do wyrażenia w wyrażeniu regularnym, ale niezwykle skomplikowane do zapisania przy użyciu normalnych metod łańcuchowych.
Python zapewnia wbudowaną obsługę wyrażeń regularnych poprzez moduł `re`. Moduł zawiera krytyczne funkcje, takie jak `re.search()` do znalezienia pierwszego dopasowania, `re.findall()` do pobrania wszystkich pasujących podciągów w postaci listy i `re.finditer()` do iteracji po dopasowanych obiektach. Każdy obiekt dopasowania udostępnia metadane, takie jak dokładny indeks pozycji początkowej i końcowej pasującego podciągu oraz sam pasujący tekst.
Wzorce wyrażeń regularnych wykorzystują specjalne metaznaki: `\d` pasuje do dowolnej cyfry, `\w` pasuje do znaków alfanumerycznych, `+` pasuje do jednego lub więcej powtórzeń, a nawiasy `[...]` definiują zestawy znaków. Grupowanie za pomocą nawiasów „(...)” pozwala wyodrębnić określone części wzorca. Dodatkowo `re.sub()` pozwala wyszukać wzorzec i zastąpić go nowym ciągiem znaków. Chociaż wyrażenie regularne wymaga stromej nauki, jego opanowanie zapewnia niezwykle szybkie i wszechstronne narzędzie do przetwarzania tekstu.
Dane wyjściowe kodu i wykonania
Używanie modułu re do sprawdzania poprawności i wyodrębniania składników adresu e-mail.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.Wdrażanie krok po kroku
- Sprawdzanie poprawności wprowadzonych formatów (e-maile, telefony, hasła)
- Analizowanie dzienników dostępu do serwera pod kątem kodów stanu
- Pobieranie informacji z surowych raportów HTML i przecen
Często zadawane pytania
Jakie jest znaczenie przedrostka „r” we wzorach wyrażeń regularnych?
Oznacza „surowy ciąg”. Surowe ciągi traktują ukośniki odwrotne (\) jako znaki dosłowne zamiast znaków ucieczki, unikając konfliktów składniowych z symbolami wieloznacznymi wyrażeń regularnych.
Jaka jest różnica między re.match i re.search?
re.match sprawdza tylko dopasowanie rozpoczynające się na samym początku ciągu, podczas gdy re.search skanuje cały ciąg w poszukiwaniu dopasowania.
Powiązane tematy
Manipulacja ciągami głównymi w Pythonie. Poznaj metody ciągów, wycinanie, łączenie i techniki formatowania dzięki przejrzystym, wykonywalnym przykładom kodu.
We/wy plików w języku PythonDowiedz się, jak czytać i zapisywać pliki w Pythonie. Opanuj menedżery open(), read(), write() i kontekstu, aby bezpiecznie obsługiwać operacje na plikach bez wycieków zasobów.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Jak sortować listę w Pythonie
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Wzorce wyrażeń regularnych w Pythonie (re moduł) Ściągawka
Przewodnik informacyjny dotyczący wyrażeń regularnych w języku Python. Poznaj wzorce dopasowywania, wyszukiwania, wyszukiwania, sub i podstawowych wzorców wyrażeń regularnych.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.