MSN天气服务的Lua string.match模式

我使用 MSN天气服务。现在我的 string.match 存在以下问题。除了sWindRichtung之外,其他变量都已填充。它等于 nil

sHumidity, rest = string.match(rest,"humidity=\"([^\"]+)\"(.*)");
sWind, rest = string.match(rest,"windspeed=\"([^\"]+)\"(.*)");
sWindRichtung, rest = string.match(rest,"winddisplay=\"([^\"]+)\"(.*)");

要过滤的字符串是: humidity="77" winddisplay="11 km/uur N" windspeed="11"

我认为字符/是问题所在。

点赞
用户107090
用户107090

你可以一次解析字符串。试试这个:

s = [[
humidity="77" winddisplay="11 km/uur N" windspeed="11"
]]

for k,v in s:gmatch('(%a+)="(.-)"') do
        print(k,v)
end

当然,你可能想把值保存在一个表中。

2013-11-25 16:40:35