Sökning och ersättning av text

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