Buscando y reemplazando texto

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: