用Lua解析键值对

时间:2016-10-06 02:01:45

标签: parsing lua

我试图用Lua解析key = value对。示例字符串如下所示:

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

不幸的是,它抓住了下一个键并将其添加到我不想要的值。我错过了什么?

1 个答案:

答案 0 :(得分:4)

您需要在键之前以不同的方式处理值和空格中的空格 下面的代码是一种方法。

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