Lua从左侧删除字符

我是 Lua 新手,正在尝试从拆分的字符串的右侧提取值。我有这个:

local t ={}
local data = ("ret=OK,type=aircon,reg=eu,dst=1,ver=2_2_5,pow=1,err=0,location=0,name=,icon=0,method=home only,port=30050,id=,pw=,lpw_flag=0,adp_kind=2,pv=0,cpv=0,led=1,en_setzone=1,mac=FCDBB382E70B,adp_mode=run")
for word in string.gmatch(data, '([^,]+)') do
    t[#t + 1] = word
end
local first = t[1]:gsub("%s+", "")

这给了我字符串 "ret = OK"。我该怎么做,才能从此字符串中仅获取 "OK",类似于:从等号右边获取所有内容并删除其左侧部分。这对于“data”变量中的所有字符串都必须执行。谢谢。

点赞
用户3979429
用户3979429

尝试这个

对于键值对 key, val 在字符串 data 中匹配 "(%W*)=(%W*),",执行以下操作:
   输出字符串 key.." equals "..val
结束
2015-12-10 19:32:05
用户5696338
用户5696338

我建议如下:

local data = 'ret=OK,type=aircon,reg=eu,dst=1,ver=2_2_5,pow=1,err=0,location=0,name=,icon=0,method=home only,port=30050,id=,pw=,lpw_flag=0,adp_kind=2,pv=0,cpv=0,led=1,en_setzone=1,mac=FCDBB382E70B,adp_mode=run'

local t = {}
for key, val in string.gmatch(data, '([^=,]*)=([^=,]*),?') do
  t[key] = val
end

print(t['ret'])  -- 输出 "OK"
print(t['adp_mode'])  -- 输出 "run"

请注意,lua模式使得尾随逗号可选(否则您将错过列表中的最后一个键值对)。

2015-12-18 21:38:27