Elixir:
Usuwanie znaków pasujących do wzorca
Jak zrobić:
# Załadowanie Elixir
iex> String.replace("He1l2o! E3lix4ir!", ~r/[0-9]/, "")
"Helo! Elixir!"
# Usuwanie znaków specjalnych oprócz spacji
iex> String.replace("Cześć! Jak się masz?", ~r/[[:punct:]]/, "")
"Cześć Jak się masz"
# Zamiana wielu spacji na jedną
iex> String.replace("Elixir jest super", ~r/\s+/, " ")
"Elixir jest super"
Deep Dive
Elixir, mocno osadzony w paradygmacie funkcyjnym, traktuje tekst jako serię niezmienialnych danych. Usuwanie znaków opiera się na mechanizmach dostępnych w modułach takich jak String
. Wzorce, czyli wyrażenia regularne (regex), pozwalają na precyzyjne określenie, które znaki mają zostać usunięte.
Historycznie, obsługa stringów i regexów wywodzi się z języków jak Perl, gdzie obróbka tekstu była niemalże formą sztuki. Elixir, używając BEAM (maszyna wirtualna Erlanga), oferuje wydajną i bezpieczną pracę z tekstami dzięki swoim immutable strings.
Alternatywną metodą jest użycie funkcji String.graphemes/1
wraz z wyrażeśniami listowymi, które mogą sprostać niektórym zadaniom bez potrzeby sięgania po regexy.
W Elixirze istnieje też możliwość korzystania z modułów napotkanych w Erlangu, takich jak :re
, co daje dodatkowe opcje manipulacji tekstami.