假设我有以下格式的行:
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+)$'))
这个模式可以用另一种方式来解决吗?
match()
两次。问题是我实际上需要修改字符串(使用gsub()
而不是match()
;为了简单起见,我在问题中省略了它),我不希望第二次调用gsub()
看到第一次所做的更改。 - Niccolo M.string.gsub
来解决你的原始问题呢? - Yu Hao