使用 Lua 解析键值对

我正在尝试使用 Lua 解析键值对。一个示例字符串看起来像这样:

str="a=b b=c name=george jetson name2=paul davidson company=radioshack"
for name, value in string.gfind(str, "([^&=]+)=([^&=]+)") do
     print(name)
     print(value)
end

结果为:

a
b b
c name
george jetson name2
paul davidson company
radioshack

不幸的是,它获取了下一个键并将其添加到值中,这并不是我想要的。我错过了什么吗?

点赞
用户107090
用户107090

你需要区分值中的空格和键名前的空格。

以下代码是一种处理方式。

str="a=b b=c name=george jetson name2=paul davidson company=radioshack"
str=" "..str.."\n"
str=str:gsub("%s(%S-)=","\n%1=")
for name, value in string.gmatch(str, "(%S-)=(.-)\n") do
     print(name,"'"..value.."'")
end
2016-10-06 02:23:32