4

次の形式の行があるとします。

int[4] height
char c
char[50] userName 
char[50+foo("bar")] userSchool 

ご覧のとおり、括弧で囲まれた式はオプションです。

Lua の を使用してこれらの文字列を解析できますstring.match()か?

次のパターンは、角かっこを含む行で機能します。

line = "int[4] height"
print(line:match('^(%w+)(%b[])%s+(%w+)$'))

しかし、オプションのブラケットも処理できるパターンはありますか? 以下は機能しませ

line = "char c"
print(line:match('^(%w+)(%b[]?)%s+(%w+)$'))

これを解決するためにパターンを別の方法で書くことはできますか?

4

2 に答える 2