Captures en string.match
Extraheer vastgelegde groepen uit strings met string.match en ()-captures
Captures en string.match is een gratis Lua Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Lua Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Lua Academy bevat in totaal 4 lessen.
Wat zijn vastleggingen?
Vastleggingen zijn subpatronen tussen haakjes in Lua-patronen. Ze halen subtekenreeksen uit de overeenkomende tekst.
string.match met vastleggingen
Wanneer een patroon vastleggingen bevat, retourneert string.match de vastgelegde subtekenreeksen in plaats van de volledige overeenkomst.
local date = "2025-01-15"
local y, m, d = date:match("(%d+)-(%d+)-(%d+)")
print(y, m, d) -- 2025 01 15Eén vastlegging
Eén vastlegging retourneert één tekenreekswaarde.
local s = "name: Alice"
local name = s:match("name: (%a+)")
print(name) -- AliceMeerdere vastleggingen
Meerdere vastleggingen worden als meerdere waarden geretourneerd.
local pair = "key = value"
local k, v = pair:match("(%w+)%s*=%s*(%w+)")
print(k, v) -- key valuePositionele vastleggingen ()
Een lege vastlegging () legt de huidige positie in de tekenreeks vast als getal.
local s = "hello world"
local pos = s:match("()world")
print(pos) -- 7 (position where world starts)Optionele vastleggingen
Leg een optioneel deel vast door ? achter de vastgelegde groep te zetten.
local s = "http://example.com"
local protocol, host = s:match("(https?)://([^/]+)")
print(protocol, host) -- http example.comstring.find met vastleggingen
string.find met vastleggingen retourneert eerst het begin en einde en daarna de vastgelegde subtekenreeksen.
local s = "phone: 555-1234"
local i, j, num = s:find("phone: (%d+-%d+)")
print(i, j, num) -- 1 16 555-1234Geneste vastleggingen
Vastleggingen kunnen genest worden. Ze worden van links naar rechts genummerd op basis van het openen van de haakjes.
local s = "2025-01-15"
local full, year = s:match("((%d%d%d%d)-%d%d-%d%d)")
print(full, year) -- 2025-01-15 2025Aanbevolen werkwijzen voor vastleggingen
Gebruik variabelen volgens een benoemingsconventie voor duidelijkheid. Nest vastleggingen niet onnodig diep. Mislukte overeenkomsten retourneren nil — controleer dit altijd voordat je vastleggingen gebruikt.
local result = s:match("(%d+)")
if result then print("found:", result)
else print("no match") endE-mailadressen overeen laten komen
Een eenvoudig e-mailpatroon (niet conform RFC) met vastleggingen.
local email = "user@example.com"
local user, domain = email:match("([^@]+)@(.+)")
print(user, domain) -- user example.comTabel met alle overeenkomsten
Gebruik string.gmatch om alle overeenkomsten in een tabel te verzamelen (dit wordt in de volgende les behandeld).
Vraag over vastleggingen
Wat retourneert "2025-01-15":match("(%d+)-(%d+)-(%d+)")?
Samenvatting: vastleggingen en string.match
Met () in patronen kun je subtekenreeksen vastleggen. string.match retourneert vastgelegde waarden rechtstreeks. Een lege () legt posities vast. Controleer matchresultaten altijd op nil.
Leer Lua met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “Captures en string.match” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Lua Academy, waaronder “Captures en string.match”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Lua Academy bevat in totaal 4 lessen.
Wat leer ik in “Captures en string.match”?
Extraheer vastgelegde groepen uit strings met string.match en ()-captures Je oefent met Lua Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Lua Academy te beginnen?
Ervaring vooraf is niet nodig. Lua Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Captures en string.match”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Lua Academy?
Ja. Elke les over Lua Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Syntaxis van Lua-patronen
- Captures en string.match
- string.gmatch voor tokenisatie
- string.gsub voor transformaties