0Pricing
Lua Academy · Lección

string.gmatch para tokenización

Recorra todas las coincidencias de un string con string.gmatch.

string.gmatch para tokenización es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 3 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.gmatch?

string.gmatch(s, pattern) devuelve un iterador que devuelve sucesivamente todas las coincidencias de pattern en la cadena s.

Iteración sobre palabras

Divida una cadena en palabras haciendo coincidir secuencias de caracteres que no sean espacios.

local s = "the quick brown fox"
for word in s:gmatch("%S+") do
  print(word)
end

Recopilación de coincidencias en una tabla

Recopile todas las coincidencias en una tabla para procesarlas posteriormente.

local function split(s, pat)
  local parts = {}
  for token in s:gmatch(pat) do
    parts[#parts+1] = token
  end
  return parts
end
local words = split("one two three", "%S+")
print(#words)  -- 3

Extracción de números

Extraiga todos los enteros de una cadena con un patrón %d+.

local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
  print(tonumber(n))
end

Uso de capturas en gmatch

Cuando el patrón contiene capturas, cada iteración devuelve los grupos capturados en lugar de la coincidencia completa.

local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
  print(k, "->", v)
end

Tokenizador CSV

Divida una línea CSV capturando todo lo que haya entre las comas.

local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
  print(field)
end

Análisis de pares clave-valor

Analice una cadena de encabezado con formato similar al de HTTP y conviértala en una tabla de pares clave-valor.

local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
  parsed[k] = v:match("^%s*(.-)%s*$")
end

Recuento de apariciones de un patrón

Cuente cuántas veces aparece un patrón en una cadena.

local function count(s, pat)
  local n = 0
  for _ in s:gmatch(pat) do n = n + 1 end
  return n
end
print(count("banana", "an"))  -- 2

Tokenizador de oraciones

Divida el texto en oraciones haciendo coincidir el texto hasta los signos de puntuación.

local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
  print(sent:match("^%s*(.-)%s*$"))
end

gmatch frente a string.find en un bucle

gmatch es la forma preferida de iterar sobre todas las coincidencias. Usar string.find en un bucle while es más verboso y propenso a errores.

Advertencia sobre Unicode

Los patrones de Lua operan sobre bytes. Es posible que los caracteres UTF-8 de varios bytes no coincidan correctamente con patrones de un solo carácter. Para obtener compatibilidad total con Unicode, use una biblioteca UTF-8.

Pregunta sobre gmatch

¿Sobre qué itera for w in s:gmatch("%S+") do?

Resumen: string.gmatch

string.gmatch es el tokenizador estándar de Lua. Úselo para dividir cadenas, extraer todos los números, analizar pares clave-valor y contar apariciones de patrones mediante un bucle de iterador claro.

Preguntas frecuentes

¿La lección «string.gmatch para tokenización» es gratis?

Sí — el texto completo de «string.gmatch para tokenización» 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.gmatch para tokenización»?

Recorra todas las coincidencias de un string con string.gmatch. 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 3 de 4.

¿Cuánto tiempo toma la lección «string.gmatch para tokenización»?

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