この質問に答えるとき、文字列内の UTF-8 バイト シーケンスを反復処理する次のコードを書きました。
local str = "KORYTNAČKA"
for c in str:gmatch("[\0-\x7F\xC2-\xF4][\x80-\xBF]*") do
print(c)
end
Lua 5.2 では動作しますが、Lua 5.1 ではエラーが報告されます。
不正なパターン (「]」がありません)
Lua 5.1 では文字列リテラルがサポートされていなかったことを思い出した\xhh
ので、次のように変更しました。
local str = "KORYTNAČKA"
for c in str:gmatch("[\0-\127\194-\244][\128-\191]*") do
print(c)
end
しかし、エラーは同じままです。どうすれば修正できますか?