Wyrażenia regularne w Pythonie

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.

Scroll to Top