Usuwanie znaków pasujących do wzorca

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.

Zobacz również