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)
endRecopilació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) -- 3Extracció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))
endUso 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)
endTokenizador 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)
endAná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*$")
endRecuento 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")) -- 2Tokenizador 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*$"))
endgmatch 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
- Sintaxis de patrones de Lua
- Capturas y string.match
- string.gmatch para tokenización
- string.gsub para transformaciones