Jak działają metody split(), sub() i subn() w Pythonowych wyrażeniach regularnych?

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.

Scroll to Top