查找特定字符

时间:2015-10-20 09:27:14

标签: string lua substring lua-patterns nodemcu

我不熟悉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和密码= fr):

Password: fr
SSID: htc&pwd=fr

我想在字符串中只有密码,在另一个字符串中有ssid。 所以我的想法是使用以下逻辑搜索字符串: ssid =在字符串中查找“ssid =”和(“&”或字符串结尾)之间的子字符串 pwd =在字符串中查找“pwd =”和(“&”或字符串结尾)之间的子字符串

1 个答案:

答案 0 :(得分:3)

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

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

现在,您将获得tData表中的信息:

tData.pwd     -- will have fr
tData.ssid    -- will have htc