Wyrażenia regularne (regular expressions, regex) w Pythonie to potężne narzędzie do wyszukiwania, sprawdzania i manipulowania tekstami. Dzięki nim możemy w łatwy sposób przeszukiwać ciągi znaków pod kątem określonych wzorców. Trzy często używane metody to split()
, sub()
, i subn()
, które oferują różne sposoby pracy z tekstami i wyrażeniami regularnymi. W tym artykule przyjrzymy się ich działaniu na praktycznym przykładzie.
Rozbudowany przykład kodu z komentarzami
import re
# Tekst, na którym będziemy pracować
text = "Jabłka kosztują 5 zł, banany 3 zł, a gruszki 4 zł."
# Użycie split() do podziału tekstu na podstawie wzorca
# Tutaj dzielimy tekst za każdym wystąpieniem liczby i spacji " zł"
parts = re.split(r'\d zł', text)
print("Podzielony tekst:", parts)
# Wyświetla podzielone części tekstu, gdzie liczby i " zł" zostały usunięte
# Użycie sub() do zamiany wzorca na nowy ciąg znaków
# Zamieniamy "zł" na "złotych" dla lepszego kontekstu
replaced_text = re.sub(r'\b(zł)\b', 'złotych', text)
print("Tekst po zamianie:", replaced_text)
# Zamienia każde wystąpienie " zł" na " złotych" w tekście
# Użycie subn() do zamiany wzorca oraz zliczania dokonanych zamian
# Podobnie jak sub(), ale zwraca także liczbę zamian
replaced_text_n, num_of_replacements = re.subn(r'\b(zł)\b', 'złotych', text)
print("Tekst po zamianie z subn:", replaced_text_n)
print("Liczba dokonanych zamian:", num_of_replacements)
# Wyświetla tekst po zamianie oraz liczbę wykonanych zamian
Omówienie
- split() pozwala na podzielenie tekstu na podstawie wzorca wyrażenia regularnego. W powyższym przykładzie tekst został podzielony tam, gdzie pojawiła się liczba i ciąg znaków ” zł”, co pozwoliło na oddzielenie poszczególnych informacji o cenach.
- sub() służy do zastąpienia wszystkich wystąpień wzorca w tekście pewnym ciągiem znaków. Dzięki tej metodzie, możemy na przykład zmienić formatowanie lub poprawić błędy w tekście.
- subn() wykonuje to samo zadanie co
sub()
, ale dodatkowo zwraca liczbę dokonanych zamian. Jest to szczególnie przydatne, gdy potrzebujemy wiedzieć, ile razy wzorzec został znaleziony i zmieniony.
Podsumowanie
Metody split()
, sub()
i subn()
z modułu re
w Pythonie oferują elastyczne narzędzia do pracy z tekstami i wyrażeniami regularnymi. Pozwalają na efektywne dzielenie tekstu, zamianę ciągów znaków oraz śledzenie liczby dokonanych zmian, co jest nieocenione w wielu zadaniach programistycznych związanych z przetwarzaniem danych tekstowych.
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.