Elixir:
Sökning och ersättning av text
How to:
Söka och ersätta i Elixir kan göras enkelt med String modulen. Här är några exempel:
# Ersätter första förekomsten av "hej" med "hallå"
original_text = "hej världen, hej igen!"
new_text = String.replace(original_text, "hej", "hallå", global: false)
IO.puts(new_text)
# Output: "hallå världen, hej igen!"
# Ersätter alla förekomster av "hej" med "hallå"
new_text_global = String.replace(original_text, "hej", "hallå")
IO.puts(new_text_global)
# Output: "hallå världen, hallå igen!"
# Använder en regex för att ersätta alla siffror med "#"
text_with_numbers = "Här är 2 siffror: 1 och 3."
replaced_numbers = String.replace(text_with_numbers, ~r/\d/, "#")
IO.puts(replaced_numbers)
# Output: "Här är # siffror: # och #."Deep Dive
Att söka och ersätta text är grundläggande inom datavetenskap och har sina rötter i tidig datateknik. Elixirs funktioner för sökning och ersättning är influerade av äldre språk som Perl men erbjuder en mer funktionsrik och lättanpassad syntax.
Som alternativ till String.replace, kan man använda Regex modulen för mer avancerade mönster. Elixir hanterar regex-strängarna genom Erlangs :re modul, vilket ger ett djupt lager av mönsterpassning.
Implementeringsdetaljer att ha i åtanke inkluderar att Elixir-strängar är UTF-8 kodade binärer. Det innebär att sökning och ersättning fungerar på unicode-text utan extra arbete men kräver försiktighet med teckenkodningar och -längder.
See Also
- Elixirs officiella dokumentation om
Stringmodulen: https://hexdocs.pm/elixir/String.html - Regex i Elixir: https://hexdocs.pm/elixir/Regex.html
- Erlangs
:remodul, som används av Elixir för regex behandling: http://erlang.org/doc/man/re.html