查找特定字符之间的子字符串

我对 Lua 语言不熟悉,希望你能帮忙。我正在尝试通过 POST 接收一些值,其值如下:

pwd = password
ssid = ssid_name

swstat={string.find(payload,"pwd=")}
swstat1={string.find(payload,"ssid=")}
if swstat[2]~=nil then
    pass=string.sub(payload,swstat[2]+1,#payload)
    ssid=string.sub(payload,swstat1[2]+1,#payload)
    print("Password: "..pass)
    print("SSID: "..ssid)
end

以上代码的实际结果是(通过网页浏览器发送了 ssid=htc 和 password=fr):

Password: fr
SSID: htc&pwd=fr

我希望将密码仅存储在一个字符串中,将 ssid 存储在另一个字符串中。因此我的想法是使用以下逻辑在字符串中搜索: ssid = 在字符串中查找介于“ssid=”和(“&”或字符串结尾)之间的子字符串 pwd = 在字符串中查找介于“pwd=”和(“&”或字符串结尾)之间的子字符串。

点赞
用户1190388
用户1190388

由于 payload 是一个有效的查询字符串格式,因此可以将相关信息存储在表中:

local tData = {}
for sParam, sValue in payload:gmatch "([^=&]+)=([^=&]+)" do
    tData[sParam:lower()] = sValue
end

现在,您将在 tData 表中拥有这些信息:

tData.pwd     -- 将具有 fr
tData.ssid    -- 将具有 htc
2015-10-20 10:03:55