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