Syntax för Lua-mönster
Lär er teckenklasserna %d, %a och %s, ankare samt kvantifierare i Lua-mönster.
Syntax för Lua-mönster är en gratis lektion i Lua Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lua Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lua Academy innehåller totalt 4 lektioner.
Lua-mönster kontra regex
Lua använder sitt eget mönsterspråk, inte fullständiga POSIX-reguljära uttryck. Det är enklare och snabbare, men saknar alternering (|) och lookaheads.
Teckenklasser
%d siffra, %a bokstav, %l liten bokstav, %u stor bokstav, %s blanktecken, %p skiljetecken, %w alfanumeriskt tecken. Versaler negerar: %D = icke-siffra.
Kvantifierare
* noll eller fler (girigt), + en eller fler, ? noll eller en, - noll eller fler (lättjefullt/kortaste matchning).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Ankare
^ förankrar matchningen vid strängens början, $ vid strängens slut.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilTeckenuppsättningar med []
Anpassade teckenklasser: [aeiou] matchar valfri vokal, [^aeiou] matchar alla tecken som inte är vokaler, [a-z] matchar gemener.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Escapa magiska tecken
Magiska tecken ( ) . % + - * ? [ ^ $ måste escap:as med %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)Jokertecknet .
. matchar valfritt enskilt tecken. Kombinera det med kvantifierare: .- är den lättjefulla matchningen av allt.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Gränsmönstret %f
%f[set] matchar en tom position mellan ett tecken som inte finns i set och ett tecken som finns i set — användbart för ordgränser.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find jämfört med string.match
string.find returnerar start- och slutindex (+ fångster). string.match returnerar den matchade texten (eller fångsterna) direkt.
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 15Balanserad matchning %b
%bxy matchar ett balanserat teckenpar med x och y. Till exempel matchar %b() balanserade parenteser, inklusive nästlade parenteser.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Begränsningar hos mönster
Lua-mönster stöder inte alternering (a|b), bakåtreferenser, lookahead/lookbehind eller namngivna grupper. Använd LPEG eller ett externt regexbibliotek för detta.
Fråga om mönstersyntax
Vilket mönster matchar en eller fler siffror?
Sammanfattning: Lua-mönstersyntax
Lua-mönster använder klasserna %d %a %s, kvantifierarna * + ? -, ankarna ^ $, uppsättningar med [] och %b för balanserad matchning. De är effektiva men saknar regex-alternering.
Lär dig Lua med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 40
- Lektioner
- 159
Vanliga frågor
Är lektionen ”Syntax för Lua-mönster” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lua Academy, inklusive ”Syntax för Lua-mönster”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lua Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Syntax för Lua-mönster”?
Lär er teckenklasserna %d, %a och %s, ankare samt kvantifierare i Lua-mönster. Ni övar på Lua Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lua Academy?
Du behöver inga förkunskaper. Utbildningen i Lua Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Syntax för Lua-mönster”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lua Academy-lektionen?
Ja. Varje Lua Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Syntax för Lua-mönster
- Fångster och string.match
- string.gmatch för tokenisering
- string.gsub för omvandlingar