string.gsub para transformaciones
Reemplace patrones por strings, funciones o búsquedas en tablas mediante gsub.
string.gsub para transformaciones es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Lua Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Lua Academy incluye 4 lecciones en total.
¿Qué es string.gsub?
string.gsub(s, pattern, repl, n) reemplaza las apariciones de pattern en s por repl. Devuelve la cadena nueva y el número de sustituciones.
Reemplazo simple de cadenas
Reemplace todas las apariciones de una subcadena literal.
local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count) -- hello Lua Lua 2Limitación de reemplazos
Pase un cuarto argumento para limitar el número de reemplazos.
local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1)) -- xxx bbb aaa 1Reemplazo basado en patrones
Reemplace todos los dígitos por una cadena fija.
local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM")) -- abc NUM def NUM 2Reemplazo mediante una función
Cuando repl es una función, se la llama con cada captura (o con la coincidencia completa) y su valor de retorno reemplaza la coincidencia.
local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
return tostring(tonumber(n) * 1.1)
end)
print(result) -- price: 110.0, tax: 16.5Reemplazo mediante una tabla
Cuando repl es una tabla, cada coincidencia (o captura) se usa como clave; el valor de la tabla reemplaza la coincidencia.
local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result) -- Hello, Alice! Welcome to Lua.Eliminación de espacios en blanco
Use gsub para eliminar los espacios en blanco iniciales y finales de una cadena.
local function trim(s)
return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim(" hello ") .. "]") -- [hello]Conversión de mayúsculas y minúsculas
Use gsub con una función para convertir cada letra a mayúscula o minúscula.
local function toUpper(s)
return s:gsub("%a", string.upper)
end
print(toUpper("hello world")) -- HELLO WORLDEscapado de caracteres especiales
Escape todos los caracteres especiales de los patrones en una cadena para poder usarla como patrón literal.
local function escapePat(s)
return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
endUso del valor de retorno del recuento
El segundo valor devuelto (el número de sustituciones) resulta útil para detectar si se realizó algún reemplazo.
local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") endPatrón de motor de plantillas
Un motor de plantillas sencillo reemplaza los marcadores {{key}} por valores de una tabla de datos.
local function render(tmpl, data)
return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"})) -- Hi Bob!Pregunta sobre gsub
Cuando repl es una función en gsub, ¿qué se le pasa?
Resumen: string.gsub
string.gsub es la navaja suiza de la transformación de cadenas: permite reemplazar con cadenas, funciones (para cálculos dinámicos) o tablas (para búsquedas en diccionarios). También devuelve el número de sustituciones.
Preguntas frecuentes
¿La lección «string.gsub para transformaciones» es gratis?
Sí — el texto completo de «string.gsub para transformaciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Lua Academy, actualiza a CoddyKit PRO. El curso de Lua Academy incluye 4 lecciones en total.
¿Qué aprenderé en «string.gsub para transformaciones»?
Reemplace patrones por strings, funciones o búsquedas en tablas mediante gsub. Practicas Lua Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Lua Academy?
No se requiere experiencia previa. Lua Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «string.gsub para transformaciones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Lua Academy?
Sí. Cada lección de Lua Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Sintaxis de patrones de Lua
- Capturas y string.match
- string.gmatch para tokenización
- string.gsub para transformaciones