Lua-mønstersyntaks
Lær tegnklassene %d, %a og %s, ankere og kvantorer i Lua-mønstre.
Lua-mønstersyntaks er en gratis leksjon i Lua Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lua Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Lua-mønstre kontra regex
Lua bruker sitt eget mønsterspråk, ikke full POSIX-regex. Det er enklere og raskere, men mangler alternasjon (|) og lookahead.
Tegnk lasser
%d siffer, %a bokstav, %l liten bokstav, %u stor bokstav, %s mellomrom, %p tegnsetting, %w alfanumerisk. Stor bokstav negaterer: %D = ikke-siffer.
Kvantorer
* null eller flere (grådig), + én eller flere, ? null eller én, - null eller flere (lat/korteste treff).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Forankringer
^ forankrer treffet til starten av strengen, og $ forankrer det til slutten.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilTegnsett med []
Egendefinerte tegnklasser: [aeiou] treffer enhver vokal, [^aeiou] treffer alle tegn som ikke er vokaler, og [a-z] treffer små bokstaver.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Escaping av spesialtegn
Spesialtegnene ( ) . % + - * ? [ ^ $ må escapes med %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)Jokertegnet .
. treffer ett vilkårlig tegn. Kombiner det med kvantorer: .- er det late treffet for alt.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Frontier-mønsteret %f
%f[set] treffer en tom posisjon mellom et tegn som ikke finnes i set, og et tegn som finnes i set – nyttig for ordgrenser.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find kontra string.match
string.find returnerer start- og sluttindekser (+ captures). string.match returnerer den matchede teksten (eller captures) direkte.
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 15Balansert treff med %b
%bxy treffer et balansert tegnpar med x og y. For eksempel treffer %b() balanserte parenteser, inkludert nøstede parenteser.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Begrensninger i mønstre
Lua-mønstre støtter ikke alternativer (a|b), backreferanser, lookahead/lookbehind eller navngitte grupper. Bruk LPEG eller et eksternt regex-bibliotek til dette.
Spørsmål om mønstersyntaks
Hvilket mønster treffer ett eller flere sifre?
Oppsummering: Lua-mønstersyntaks
Lua-mønstre bruker klassene %d %a %s, kvantorene * + ? -, forankringene ^ $, settene [] og %b for balanserte treff. De er effektive, men mangler regex-alternativer.
Lær deg Lua med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 40
- Leksjoner
- 159
Ofte stilte spørsmål
Er leksjonen «Lua-mønstersyntaks» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lua Academy, inkludert «Lua-mønstersyntaks», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Lua-mønstersyntaks»?
Lær tegnklassene %d, %a og %s, ankere og kvantorer i Lua-mønstre. Du øver på Lua Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lua Academy?
Ingen tidligere erfaring er nødvendig. Lua Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Lua-mønstersyntaks»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lua Academy-leksjonen?
Ja. Alle Lua Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Lua-mønstersyntaks
- Captures og string.match
- string.gmatch for tokenisering
- string.gsub for transformeringer