string.gsub() para sustitución
Parte de la sección Lógica y flujo de control del Journey de Lua de Coddy. Lección 35 de 54.
Al trabajar con cadenas, a menudo necesitas buscar y reemplazar texto. La función string.gsub() de Lua facilita esta tarea al realizar una sustitución global: encontrar todas las apariciones de un patrón y reemplazarlas por otra cosa.
La sintaxis básica toma tres argumentos: la cadena original, el patrón que se debe buscar y el texto de reemplazo:
local result = string.gsub(originalString, pattern, replacement)Aquí tienes un ejemplo sencillo que reemplaza todos los espacios por guiones bajos:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Salida: hello_world_from_luaLa función devuelve dos valores: la cadena modificada y el número de reemplazos realizados. Puedes capturar ambos si es necesario:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Salida: baz bar baz
print(count) -- Salida: 2A diferencia de algunas funciones de cadena que solo encuentran la primera coincidencia, string.gsub() reemplaza cada aparición de forma predeterminada, lo que la hace perfecta para tareas de limpieza de texto, como eliminar caracteres no deseados o estandarizar el formato.
Desafío
FácilEscribe una función cleanText que tome text y devuelva una versión limpia con todos los espacios reemplazados por guiones bajos.
Usa string.gsub() para reemplazar cada carácter de espacio en el texto por un carácter de guion bajo.
Parámetros:
text(cadena): El texto que se limpiará
Devuelve: El texto con todos los espacios reemplazados por guiones bajos (cadena)
Pruébalo tú mismo
function cleanText(text)
-- Escribe el código aquí
end
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo de control
1Iteración avanzada de tablas
Iterar con pairs()Iterar con ipairs()pairs() vs. ipairs()Resumen - Ficha de personaje4Introducción a las Metatablas
¿Qué es una Metatabla?setmetatable y getmetatableEl metamétodo __indexEl metamétodo __newindexEl metamétodo __tostringMetamétodos aritméticos - Parte 1Metamétodos aritméticos - Parte 2Resumen - Tablas de solo lectura7Manipulación avanzada de cadenas
string.gsub() para sustituciónIntroducción a patrones de cadenasstring.find()string.match()Iteración con string.gmatch()Resumen - Analizador de archivos Log2Más funciones de la librería table
table.concat()Construcción de tablas y unpack()table.sort()Ordenamiento personalizado con funcionesRepaso - Tabla de puntuaciones altasPractica por tu cuenta: Compilador de Lua online