Lua Academy · Lektion

Syntax för Lua-mönster

Lär er teckenklasserna %d, %a och %s, ankare samt kvantifierare i Lua-mönster.

Lektion 1 av 413 steg

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")) -- nil

Teckenuppsä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]+"))    -- 123

Escapa 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
end

string.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  15

Balanserad 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.

Gratis att börja

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

  1. Syntax för Lua-mönster
  2. Fångster och string.match
  3. string.gmatch för tokenisering
  4. string.gsub för omvandlingar
← Tillbaka till Lua Academy