gmatch 功能

这个怎么运作

string.gmatch 函数将采用输入字符串和模式。这种模式描述了实际取回的内容。该函数将返回一个实际上是迭代器的函数。此迭代器的结果将与模式匹配。

type(("abc"):gmatch ".") --> returns "function"

for char in ("abc"):gmatch "." do
    print char -- this prints:
    --> a
    --> b
    --> c
end

for match in ("#afdde6"):gmatch "%x%x" do
    print("#" .. match) -- prints:
    --> #af
    --> #dd
    --> #e6
end

介绍捕获:

这与常规函数非常类似,但它只返回捕获而不是完全匹配。

for key, value in ("foo = bar, bar=foo"):gmatch "(%w+)%s*=%s*(%w+)" do
    print("key: " .. key .. ", value: " .. value)
    --> key: foo, value: bar
    --> key: bar, value: foo
end