LUA select table 中的特定字符串

LUA select specific string in table

我无法从 LUA table.

恢复值

Table(字符串):

table = {
key = "/get value0\n/get [opt1][opt2] value1\n/get [opt1][opt2][opt3][opt4] value2\n/get value3\n/get [opt1] value4",
},

第一行是否可以select“/get”和"value0"。 以及所有其他行的“/get”和"value1 or 2 / 3 / 4" ?

我想我有一个可行的想法,但说起来容易做起来难

结果:

/get value0 
/get value1 
/get value2 
/get value3 
/get value4

试试这个代码:

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

它首先将字符串吐出成行,然后删除括号中的所有字符串,可选地后跟 spaces。

一个更简单的匹配是 l:gsub(" .* "," "),它将删除从第一个 space 到最后一个的所有内容。

如果要拆分结果字符串,请使用此代码:

for l in s:gmatch("(/.-)\n") do
    local var1, var2 = l:gsub(" .* "," "):match("(.*) (.*)$")
    print(var1, var2 )
end