呼ばれるたびに文字列 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