Wyszukiwanie i zamiana tekstu

Elixir:
Wyszukiwanie i zamiana tekstu

How to:

“Jak to zrobić?”

# Podstawowa zamiana w ciągu znaków
original_text = "Witaj świecie, Elixir jest niesamowity!"
new_text = String.replace(original_text, "świecie", "Elixira")

IO.puts new_text
# Wynik: "Witaj Elixira, Elixir jest niesamowity!"

# Wyszukiwanie za pomocą wyrażeń regularnych
regex = ~r/jest (\w+)/
replacement = "to \\1 i wiele więcej"

IO.puts String.replace(original_text, regex, replacement)
# Wynik: "Witaj świecie, Elixir to niesamowity i wiele więcej"

# Zamiana wielu wzorców na raz
patterns = [{"Elixir", "Phoenix"}, {"jest", "to"}, {"niesamowity", "fantastyczny"}]

IO.puts Enum.reduce(patterns, original_text, fn {from, to}, acc -> 
  String.replace(acc, from, to) 
end)
# Wynik: "Witaj świecie, Phoenix to fantastyczny!"

Deep Dive

“Głębsze spojrzenie”

Historia funkcji stringowych w Elixirze nawiązuje do systemu pattern matching w Erlangu. Wyszukiwanie i zamiana opierają się na potężnej składni wyrażeń regularnych, zapożyczonej z Perl’a. Alternatywą może być wykorzystanie funkcji związanych ze strumieniami (Streams), do przetwarzania dużych plików bez potrzeby ich wczytywania do pamięci. Sprawność implementacji tych funkcji w Elixirze pozwala na wydajne zarządzanie łańcuchami znaków, co jest kluczowe przy obsłudze protokołów sieciowych czy przetwarzaniu dużych zbiorów danych.

See Also

“Zobacz też”