util.string.match
Shared
Searches for the first match of a pattern and returns captures
Syntax
local ... = util.string.match(
input,
pattern,
start_at = 1
)Parameters
| Type | Name | Description |
|---|---|---|
string | input | String to search in |
string | pattern | Lua pattern to match |
int | start_at | Position to start searching from - negative counts from end |
Returns
| Type | Name | Description |
|---|---|---|
any | nil | ... | Captured strings or nil if no match is found |
Examples
local result = util.string.match("hello 123", "%d+")
core.engine.print("info", result) -- '123'local num = util.string.match("Price: $25", "%$(%d+)")
core.engine.print("info", num) -- '25'local word1, word2 = util.string.match("hello world", "(%a+) (%a+)")
core.engine.print("info", word1, word2) -- 'hello world'local user, domain = util.string.match("john@example.com", "(.+)@(.+)")
core.engine.print("info", user) -- 'john'
core.engine.print("info", domain) -- 'example.com'local result = util.string.match("hello hello", "hello", 7)
core.engine.print("info", result) -- 'hello'local num = util.string.match("Temperature: 25°C", "%d+")
core.engine.print("info", num) -- '25'local text = 'name="John Doe"'
local value = util.string.match(text, '"(.-)"')
core.engine.print("info", value) -- 'John Doe'local url = "https://example.com/path"
local protocol, domain, path = util.string.match(url, "(.-)://([^/]+)(.+)")
core.engine.print("info", protocol) -- 'https'
core.engine.print("info", domain) -- 'example.com'
core.engine.print("info", path) -- '/path'local result = util.string.match("hello", "%d+")
core.engine.print("info", result) -- nillocal version = util.string.match("v1.2.3", "v(%d+%.%d+%.%d+)")
core.engine.print("info", version) -- '1.2.3'local word = util.string.match(" hello world ", "%a+")
core.engine.print("info", word) -- 'hello'local color = util.string.match("color: #FF5733", "#(%x+)")
core.engine.print("info", color) -- 'FF5733'local text = "user123"
local name = util.string.match(text, "^(%a+%d+)$")
if name then
core.engine.print("info", "Valid username:", name)
endlocal key, value = util.string.match("setting=enabled", "(.-)=(.*)")
core.engine.print("info", key, value) -- 'setting enabled'local text = "hello world"
local pos = util.string.match(text, "world()")
core.engine.print("info", pos) -- 12