我试图用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
不幸的是,它抓住了下一个键并将其添加到我不想要的值。我错过了什么?
答案 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