Elixir:
Pesquisando e substituindo texto
Como Fazer:
# Para substituir todas as ocorrências de uma string:
original = "Elixir é incrível e fácil de aprender. Elixir agiliza o desenvolvimento."
modified = String.replace(original, "Elixir", "Erlang")
IO.puts modified
# Saída: Erlang é incrível e fácil de aprender. Erlang agiliza o desenvolvimento.
# Para substituir a primeira ocorrência de uma string:
modified_once = String.replace(original, "Elixir", "Erlang", global: false)
IO.puts modified_once
# Saída: Erlang é incrível e fácil de aprender. Elixir agiliza o desenvolvimento.
# Usando expressões regulares:
regex_modified = String.replace(original, ~r/Elixir/, "Erlang")
IO.puts regex_modified
# Saída: Erlang é incrível e fácil de aprender. Erlang agiliza o desenvolvimento.
Aprofundando
A função de busca e substituição não é exclusiva do Elixir; ela existe em diversas linguagens de programação e editores de texto há anos. Nas origens da edição de texto computacional, utilitários como sed
no UNIX já permitiam essas operações através da linha de comando. No Elixir, busca e substituição é frequentemente realizada com as funções String.replace/3
e String.replace/4
, que são parte do módulo String
, ou com expressões regulares usando a sigil ~r/
. A primeira opção é boa para substituições diretas, enquanto a segunda é mais poderosa e flexível quando padrões complexos estão envolvidos. Na prática, ao escolher entre strings normais e expressões regulares, pondera-se a simplicidade versus a necessidade de um padrão mais complexo de busca.