Sintassi dei pattern Lua
Apprenda le classi di caratteri %d, %a, %s, gli ancoraggi e i quantificatori nei pattern Lua.
Sintassi dei pattern Lua è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Lua Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Lua Academy include 4 lezioni in totale.
Pattern Lua e regex
Lua utilizza un proprio linguaggio per i pattern, non le regex POSIX complete. È più semplice e veloce, ma non supporta l'alternanza (|) né i lookahead.
Classi di caratteri
%d cifra, %a lettera, %l minuscola, %u maiuscola, %s spazio bianco, %p punteggiatura, %w alfanumerico. Le maiuscole negano: %D = non cifra.
Quantificatori
* zero o più (avido), + uno o più, ? zero o uno, - zero o più (pigro/corrispondenza più breve).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Ancoraggi
^ ancora all'inizio della stringa, $ ancora alla fine.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilInsiemi di caratteri con []
Classi di caratteri personalizzate: [aeiou] corrisponde a una qualsiasi vocale, [^aeiou] corrisponde a un carattere non vocalico, [a-z] corrisponde alle lettere minuscole.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Escape dei caratteri speciali
I caratteri speciali ( ) . % + - * ? [ ^ $ devono essere preceduti dal carattere di escape %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)Il carattere jolly .
. corrisponde a un singolo carattere qualsiasi. Può essere combinato con i quantificatori: .- corrisponde a qualsiasi sequenza in modalità pigra.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Pattern di confine %f
%f[set] corrisponde a una posizione vuota tra un carattere non incluso in set e uno incluso in set — utile per individuare i confini delle parole.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find e string.match
string.find restituisce gli indici di inizio e fine (oltre alle catture). string.match restituisce direttamente il testo corrispondente (o le catture).
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 15Corrispondenza bilanciata %b
%bxy corrisponde a una coppia bilanciata di caratteri x e y. Ad esempio, %b() corrisponde a parentesi bilanciate, incluse quelle annidate.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Limiti dei pattern
I pattern Lua non supportano: alternanza (a|b), backreference, lookahead/lookbehind o gruppi denominati. Per queste funzionalità, usate LPEG o una libreria regex esterna.
Domanda sulla sintassi dei pattern
Quale pattern corrisponde a una o più cifre?
Riepilogo: sintassi dei pattern Lua
I pattern Lua usano le classi %d %a %s, i quantificatori * + ? -, gli ancoraggi ^ $, gli insiemi [] e %b per le corrispondenze bilanciate. Sono efficienti, ma non supportano l'alternanza delle regex.
Domande Frequenti
La lezione «Sintassi dei pattern Lua» è gratuita?
Sì — il testo completo di «Sintassi dei pattern Lua» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Lua Academy, passa a CoddyKit PRO. Il corso Lua Academy include 4 lezioni in totale.
Cosa imparerò in «Sintassi dei pattern Lua»?
Apprenda le classi di caratteri %d, %a, %s, gli ancoraggi e i quantificatori nei pattern Lua. Eserciti Lua Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Lua Academy?
Non è richiesta alcuna esperienza precedente. Lua Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Sintassi dei pattern Lua»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Lua Academy?
Sì. Ogni lezione Lua Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Sintassi dei pattern Lua
- Catture e string.match
- string.gmatch per la tokenizzazione
- string.gsub per le trasformazioni