我在从LUA表中恢复值时遇到问题。
表(字符串):
table = {
key = "/get value0\n/get [opt1][opt2] value1\n/get [opt1][opt2][opt3][opt4] value2\n/get value3\n/get [opt1] value4",
},
是否可以为第一行选择“ / get”和“ value0”。 以及其他所有行上的“ / get”和“ value1或2/3/4”?
我想我有一个可行的想法,但是说起来容易做起来
结果:
/get value0
/get value1
/get value2
/get value3
/get value4
答案 0 :(得分:0)
尝试以下代码:
s=[[
/get value0
/get [opt1][opt2] value1
/get [opt1][opt2][opt3][opt4] value2
/get value3
/get [opt1] value4
]]
for l in s:gmatch("(/.-)\n") do
print((l:gsub("%b[]%s*","")))
end
它首先将字符串吐成几行,然后删除括号中的所有字符串(可选),然后加上空格。
更简单的匹配是l:gsub(" .* "," ")
,它将删除从第一个空格到最后一个空格的所有内容。
如果要分割结果字符串,请使用以下代码:
for l in s:gmatch("(/.-)\n") do
local var1, var2 = l:gsub(" .* "," "):match("(.*) (.*)$")
print(var1, var2 )
end