Pesquisando e substituindo texto

Ruby:
Pesquisando e substituindo texto

How to:

texto = "Eu amo programar em Ruby!"
novo_texto = texto.gsub("amo", "adoro")
puts novo_texto
# => Eu adoro programar em Ruby!

# Procurando com regex
resultado = texto.scan(/a[\w]o/)
puts resultado
# => ["amo"]

# Substituindo com regex
texto_fix = texto.gsub(/a[\w]o\b/, 'odeio')
puts texto_fix
# => Eu odeio programar em Ruby!

Deep Dive

Procurar e substituir em Ruby não é novidade. Desde os primórdios, Ruby teve métodos como gsub e sub para substituir texto, e scan para procurar. Regex, ou expressões regulares, são ferramentas poderosíssimas nesse processo, permitindo padrões complexos e substituições condicionais.

Alternativas envolvem bibliotecas externas ou linguagens de script, como sed em UNIX, mas Ruby já vem com tudo o que é necessário. Na implementação, gsub cria uma nova string, eficiência que pode ser crítica em textos longos. sub tem performance similar, mas altera só a primeira ocorrência.

See Also