呼ばれるたびに文字列 s から pattern でキャプチャされた部分を次々と返すような、イテレータ関数を返す。
pattern にキャプチャが指定されていなければ、それぞれの呼び出しごとに、マッチした文字列全体を返す。
例えば、以下のループでは
s = "hello world from Lua"
for w in string.gmatch(s, "%a+") do
print(w)
end
文字列 s のすべての単語について繰り返し、それぞれを別々の行に出力する。次の例は、与えられた文字列から key=value のペアを集めてテーブルへ入れる。
t = {}
s = "from=world, to=Lua"
for k, v in string.gmatch(s, "(%w+)=(%w+)") do
t[k] = v
end
values = {}
s = "name=hoge&age=22&country=ja"
for k,v in string.gmatch(s, "(%w+)=(%w+)") do
values[k] = v
end
-- debug print
for k,v in pairs(values) do
print(k.."="..v)
end
-->name=hoge
-->age=22
-->country=ja