String Patterns
Anchored Match
Anchors make a pattern match the whole string instead of a substring.
anchors
`^` anchors the beginning of the string and `$` anchors the end.
Anchored Match
anchored_match.lua
Replay: real traced execution (multi-file project)
local name = "item42"
local prefix, digits = string.match(name, "^(%a+)(%d+)$")
print("name=" .. name)
print("prefix=" .. prefix)
print("digits=" .. digits)
local name = "item7"
local prefix, digits = string.match(name, "^(%a+)(%d+)$")
print("name=" .. name)
print("prefix=" .. prefix)
print("digits=" .. digits)
local name = "box5"
local prefix, digits = string.match(name, "^(%a+)(%d+)$")
print("name=" .. name)
print("prefix=" .. prefix)
print("digits=" .. digits)
name ← item42, prefix ← item, digits ← 42
1local name→ item42 = "item42" --@name="item7", "box5"2local prefix→ item, digits→ 42 = string.match(nameitem42, "^(%a+)(%d+)$")34print("name=" .. nameitem42)5print("prefix=" .. prefixitem)6print("digits=" .. digits42)outputname=item42 prefix=item digits=42
name ← item7, prefix ← item, digits ← 7
1local name→ item7 = "item7"2local prefix→ item, digits→ 7 = string.match(nameitem7, "^(%a+)(%d+)$")34print("name=" .. nameitem7)5print("prefix=" .. prefixitem)6print("digits=" .. digits7)outputname=item7 prefix=item digits=7
name ← box5, prefix ← box, digits ← 5
1local name→ box5 = "box5"2local prefix→ box, digits→ 5 = string.match(namebox5, "^(%a+)(%d+)$")34print("name=" .. namebox5)5print("prefix=" .. prefixbox)6print("digits=" .. digits5)outputname=box5 prefix=box digits=5