Ruby:
Buscando y reemplazando texto
Cómo Hacerlo:
Ruby facilita la búsqueda y sustitución de texto con métodos como gsub
. Aquí un ejemplo que cambia todas las apariciones de “hola” por “adiós”:
texto = "hola, mundo! hola de nuevo!"
texto_modificado = texto.gsub("hola", "adiós")
puts texto_modificado
# => adiós, mundo! adiós de nuevo!
Si solo quieres cambiar la primera aparición, puedes usar sub
:
texto = "hola, mundo! hola de nuevo!"
texto_modificado = texto.sub("hola", "adiós")
puts texto_modificado
# => adiós, mundo! hola de nuevo!
Para una búsqueda más potente, puedes utilizar expresiones regulares:
texto = "hola, mundo! hello world!"
texto_modificado = texto.gsub(/[hH]([aeiou])/, 'H\1i')
puts texto_modificado
# => Hila, mundo! Hello world!
Análisis Profundo:
Buscar y reemplazar texto es un concepto tan antiguo como la edición de texto mismo. Desde comandos de terminal como sed
en UNIX hasta la funcionalidad incorporada en editores de texto modernos, es una operación fundamental. En Ruby, gsub
y sub
son métodos que pertenecen a la clase String
. gsub
proviene de “global substitution” (sustitución global) y sub
de “substitution” (sustitución). Al usar expresiones regulares, puedes lograr reemplazos basados en patrones complejos, no solo palabras exactas.
Alternativamente, en situaciones que no necesitan la potencia de gsub
, puedes emplear otros métodos de String
, como tr
que reemplaza caracteres individuales en lugar de patrones.
texto = "foobar"
texto_modificado = texto.tr('abc', 'xyz')
puts texto_modificado
# => fyyzxz
Detalles de implementación: gsub
y sub
devuelven una nueva instancia de String
, dejando intacto el original. Si necesitas modificar el String
en su lugar, gsub!
y sub!
existen como sus equivalentes destructivos.
Ver También:
Aquí algunos enlaces útiles para profundizar en el tema: