Lua pattern classes like %a and %d match letters and digits.

pattern classes `%a` matches a letter and `%d` matches a digit. A trailing `+` repeats the class one or more times.

Character Class

code
character_class.lua
Replay: real traced execution (multi-file project)
local code = "A42"
local letter, digits = string.match(code, "(%a)(%d+)")

print("code=" .. code)
print("letter=" .. letter)
print("digits=" .. digits)
local code = "B7"
local letter, digits = string.match(code, "(%a)(%d+)")

print("code=" .. code)
print("letter=" .. letter)
print("digits=" .. digits)
local code = "C105"
local letter, digits = string.match(code, "(%a)(%d+)")

print("code=" .. code)
print("letter=" .. letter)
print("digits=" .. digits)
  1. code ← A42, letter ← A, digits ← 42

    1local code→ A42 = "A42" --@code="B7", "C105"2local letter→ A, digits→ 42 = string.match(codeA42, "(%a)(%d+)")34print("code=" .. codeA42)5print("letter=" .. letterA)6print("digits=" .. digits42)
    outputcode=A42
    letter=A
    digits=42
  1. code ← B7, letter ← B, digits ← 7

    1local code→ B7 = "B7"2local letter→ B, digits→ 7 = string.match(codeB7, "(%a)(%d+)")34print("code=" .. codeB7)5print("letter=" .. letterB)6print("digits=" .. digits7)
    outputcode=B7
    letter=B
    digits=7
  1. code ← C105, letter ← C, digits ← 105

    1local code→ C105 = "C105"2local letter→ C, digits→ 105 = string.match(codeC105, "(%a)(%d+)")34print("code=" .. codeC105)5print("letter=" .. letterC)6print("digits=" .. digits105)
    outputcode=C105
    letter=C
    digits=105