Wyrażenia regularne (regular expressions, regex) w Pythonie to potężne narzędzie do przeszukiwania, dopasowywania i manipulowania tekstami. Umożliwiają one wykonanie skomplikowanych zadań, takich jak wyszukiwanie wszystkich wystąpień wzorca w tekście, zamianę fragmentów tekstu czy walidację formatu danych, przy użyciu bardzo skondensowanej i elastycznej składni. W tym artykule przyjrzymy się różnym aspektom wykorzystania wyrażeń regularnych w Pythonie, oferując praktyczne przykłady z kodem i komentarzami.
Podstawy wyrażeń regularnych
Wyrażenia regularne w Pythonie używane są poprzez moduł re
, który musi być zaimportowany przed ich użyciem. Oto podstawowe funkcje dostępne w tym module:
import re
# Przykład dopasowania wzorca tekstu
# zmienna zawierająca tekst do przeszukania
textToSearch = "Python is fun!"
# wyrażenie regularne szukające słowa 'Python'
pattern = re.compile(r"Python")
# szukanie wzorca w tekście
match = pattern.search(textToSearch)
if match:
print("Znaleziono:", match.group())
else:
print("Nie znaleziono wzorca.")
Wyszukiwanie i zamiana
Wyrażenia regularne pozwalają nie tylko na wyszukiwanie wzorców, ale również na ich zamianę:
# Tekst, w którym będziemy dokonywać zamiany
textToReplace = "Python is fun! Python is easy!"
# Zamiana wszystkich wystąpień 'Python' na 'Programming'
replacedText = re.sub(r"Python", "Programming", textToReplace)
print(replacedText) # Wypisze: 'Programming is fun! Programming is easy!'
Grupowanie i ekstrakcja danych
Za pomocą nawiasów ()
możemy grupować części wyrażeń regularnych, co umożliwia ekstrakcję konkretnych fragmentów tekstu:
# Tekst do analizy
textForAnalysis = "Email: example@mail.com"
# Wzorzec do ekstrakcji adresu email
emailPattern = re.compile(r"Email: (\S+@\S+)")
# Wyszukiwanie adresu email
match = emailPattern.search(textForAnalysis)
if match:
# Wyodrębnienie i wypisanie adresu email
print("Adres email:", match.group(1))
Znajdowanie wszystkich dopasowań
Często potrzebujemy znaleźć wszystkie wystąpienia wzorca w tekście, co umożliwia funkcja findall
:
# Tekst z wieloma adresami email
emailsText = "kontakt1: example1@mail.com, kontakt2: example2@mail.com"
# Wzorzec do wyszukiwania adresów email
emailsPattern = re.compile(r"\S+@\S+")
# Znalezienie wszystkich adresów email
emails = emailsPattern.findall(emailsText)
print("Znalezione adresy email:", emails)
Podsumowanie
Wyrażenia regularne w Pythonie to niezwykle potężne narzędzie, które pozwala na efektywne przetwarzanie tekstów. Pozwalają one na wyszukiwanie, ekstrakcję i manipulację danymi tekstowymi w sposób, który byłby trudny lub niemożliwy do osiągnięcia przy użyciu standardowych metod stringów. Mając opanowane podstawy i kilka zaawansowanych technik, możemy znacząco zwiększyć efektywność naszego kodu w kontekście przetwarzania tekstów.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.