Sintaxis de patrones de Lua
Aprenda las clases de caracteres %d, %a y %s, los anclajes y los cuantificadores de los patrones de Lua.
Sintaxis de patrones de Lua es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 1 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.
Patrones de Lua frente a expresiones regulares
Lua utiliza su propio lenguaje de patrones, no expresiones regulares POSIX completas. Es más sencillo y rápido, pero carece de alternancia (|) y lookaheads.
Clases de caracteres
%d dígito, %a letra, %l minúscula, %u mayúscula, %s espacio en blanco, %p puntuación, %w alfanumérico. Las mayúsculas niegan la clase: %D = no dígito.
Cuantificadores
* cero o más (codicioso), + uno o más, ? cero o uno, - cero o más (perezoso/coincidencia más corta).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Anclas
^ ancla al inicio de la cadena y $ al final.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilConjuntos de caracteres con []
Clases de caracteres personalizadas: [aeiou] coincide con cualquier vocal, [^aeiou] coincide con cualquier carácter que no sea una vocal y [a-z] coincide con letras minúsculas.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Escapado de caracteres especiales
Los caracteres especiales ( ) . % + - * ? [ ^ $ deben escaparse con %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)El comodín .
. coincide con cualquier carácter individual. Combínelo con cuantificadores: .- es la coincidencia perezosa con cualquier carácter.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Patrón de frontera %f
%f[set] coincide con una posición vacía entre un carácter que no está en set y otro que sí está; resulta útil para los límites de palabras.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find frente a string.match
string.find devuelve los índices inicial y final (además de las capturas). string.match devuelve directamente el texto coincidente (o las capturas).
local s = "date: 2025-01-15"
local i, j = s:find("%d%d%d%d%-%d%d%-%d%d")
print(i, j) -- 7 16
print(s:match("(%d+)-(%d+)-(%d+)")) -- 2025 01 15Coincidencia equilibrada %b
%bxy coincide con un par equilibrado de caracteres x e y. Por ejemplo, %b() coincide con paréntesis equilibrados, incluidos los anidados.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Limitaciones de los patrones
Los patrones de Lua no admiten: alternancia (a|b), referencias inversas, anticipación ni retrospectiva, ni grupos con nombre. Para esos casos, use LPEG o una biblioteca externa de expresiones regulares.
Pregunta sobre la sintaxis de patrones
¿Qué patrón coincide con uno o más dígitos?
Resumen: sintaxis de patrones de Lua
Los patrones de Lua utilizan las clases %d %a %s, los cuantificadores * + ? -, las anclas ^ $, los conjuntos [] y %b para las coincidencias equilibradas. Son eficientes, pero no admiten la alternancia de las expresiones regulares.
Preguntas frecuentes
¿La lección «Sintaxis de patrones de Lua» es gratis?
Sí — el texto completo de «Sintaxis de patrones de Lua» 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 «Sintaxis de patrones de Lua»?
Aprenda las clases de caracteres %d, %a y %s, los anclajes y los cuantificadores de los patrones de Lua. 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 1 de 4.
¿Cuánto tiempo toma la lección «Sintaxis de patrones de Lua»?
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