string.gsub() para sustitución
Parte de la sección Logic & Flow 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 esto al realizar una sustitución global: busca todas las ocurrencias de un patrón y las reemplaza con otra cosa.
La sintaxis básica toma tres argumentos: la cadena original, el patrón a buscar y el texto de reemplazo:
local result = string.gsub(originalString, pattern, replacement)Aquí tienes un ejemplo sencillo que reemplaza todos los espacios con 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 ocurrencia por defecto, 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 recibe text y devuelve 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 con un carácter de guion bajo.
Parámetros:
text(string): El texto a limpiar
Devuelve: El texto con todos los espacios reemplazados por guiones bajos (string)
Hoja de referencia
La función string.gsub() realiza una sustitución global al encontrar todas las ocurrencias de un patrón y reemplazarlas:
local result = string.gsub(originalString, pattern, replacement)Ejemplo reemplazando espacios con guiones bajos:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Resultado: hello_world_from_luaLa función devuelve dos valores: la cadena modificada y el número de reemplazos realizados:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Resultado: baz bar baz
print(count) -- Resultado: 2string.gsub() reemplaza cada ocurrencia por defecto, no solo la primera coincidencia.
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 Logic & Flow
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 altas