0Pricing
Lua Academy · Lección

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  2

Limitació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  1

Reemplazo 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  2

Reemplazo 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.5

Reemplazo 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 WORLD

Escapado 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")
end

Uso 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") end

Patró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

  1. Sintaxis de patrones de Lua
  2. Capturas y string.match
  3. string.gmatch para tokenización
  4. string.gsub para transformaciones
← Volver a Lua Academy