string.gmatch för tokenisering
Iterera över alla träffar i en sträng med string.gmatch.
string.gmatch för tokenisering är en gratis lektion i Lua Academy på CoddyKit. Detta är lektion 3 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.
Vad är string.gmatch?
string.gmatch(s, pattern) returnerar en iterator som successivt returnerar alla matchningar av pattern i strängen s.
Iterera över ord
Tokenisera en sträng till ord genom att matcha sekvenser av tecken som inte är blanksteg.
local s = "the quick brown fox"
for word in s:gmatch("%S+") do
print(word)
endSamla matchningar i en tabell
Samla alla matchningar i en tabell för vidare bearbetning.
local function split(s, pat)
local parts = {}
for token in s:gmatch(pat) do
parts[#parts+1] = token
end
return parts
end
local words = split("one two three", "%S+")
print(#words) -- 3Extrahera tal
Extrahera alla heltal ur en sträng med mönstret %d+.
local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
print(tonumber(n))
endAnvända fångster i gmatch
När mönstret innehåller fångster returnerar varje iteration de fångade grupperna i stället för hela matchningen.
local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
print(k, "->", v)
endCSV-tokeniserare
Dela upp en CSV-rad genom att fånga allt mellan kommatecknen.
local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
print(field)
endParsning av nyckel-värde-par
Parsa en HTTP-liknande headersträng till en tabell med nyckel-värde-par.
local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
parsed[k] = v:match("^%s*(.-)%s*$")
endRäkna mönsterförekomster
Räkna hur många gånger ett mönster förekommer i en sträng.
local function count(s, pat)
local n = 0
for _ in s:gmatch(pat) do n = n + 1 end
return n
end
print(count("banana", "an")) -- 2Menings-tokeniserare
Dela upp text i meningar genom att matcha fram till skiljetecken.
local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
print(sent:match("^%s*(.-)%s*$"))
endgmatch jämfört med string.find i en loop
gmatch är det rekommenderade sättet att iterera över alla matchningar. Att använda string.find i en while-loop är mer omständligt och felbenäget.
Unicode-begränsning
Lua-mönster arbetar med byte. Flerbytes-UTF-8-tecken kanske inte matchas korrekt av mönster för enskilda tecken. Använd ett UTF-8-bibliotek för fullständigt Unicode-stöd.
Fråga om gmatch
Vad itererar for w in s:gmatch("%S+") do över?
Sammanfattning: string.gmatch
string.gmatch är Lua:s standardtokeniserare. Använd den för att dela upp strängar, extrahera alla tal, parsa nyckel-värde-par och räkna mönsterförekomster i en ren iteratorloop.
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 ”string.gmatch för tokenisering” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lua Academy, inklusive ”string.gmatch för tokenisering”, 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 ”string.gmatch för tokenisering”?
Iterera över alla träffar i en sträng med string.gmatch. 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 3 av 4.
Hur lång tid tar lektionen ”string.gmatch för tokenisering”?
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