String Patterns
Capture Pair
Parentheses capture matched text so later code can use each part separately.
captures
Each capture in a pattern becomes another return value from `string.match`.
Capture Pair
capture_pair.lua
Replay: real traced execution (multi-file project)
local record = "name Ada"
local key, value = string.match(record, "(%w+) (%w+)")
print("record=" .. record)
print("key=" .. key)
print("value=" .. value)
local record = "role admin"
local key, value = string.match(record, "(%w+) (%w+)")
print("record=" .. record)
print("key=" .. key)
print("value=" .. value)
local record = "city Oslo"
local key, value = string.match(record, "(%w+) (%w+)")
print("record=" .. record)
print("key=" .. key)
print("value=" .. value)
key ← name, value ← Ada
1local record = "name Ada" --@record="role admin", "city Oslo"2local key→ name, value→ Ada = string.match(recordname Ada, "(%w+) (%w+)")34print("record=" .. recordname Ada)5print("key=" .. keyname)6print("value=" .. valueAda)outputrecord=name Ada key=name value=Ada
key ← role, value ← admin
1local record = "role admin"2local key→ role, value→ admin = string.match(recordrole admin, "(%w+) (%w+)")34print("record=" .. recordrole admin)5print("key=" .. keyrole)6print("value=" .. valueadmin)outputrecord=role admin key=role value=admin
key ← city, value ← Oslo
1local record = "city Oslo"2local key→ city, value→ Oslo = string.match(recordcity Oslo, "(%w+) (%w+)")34print("record=" .. recordcity Oslo)5print("key=" .. keycity)6print("value=" .. valueOslo)outputrecord=city Oslo key=city value=Oslo