【问题标题】:Parsing key value pair with Lua使用 Lua 解析键值对
【发布时间】:2017-02-14 15:08:20
【问题描述】:

我正在尝试使用 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

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

【问题讨论】:

  • for name, value in str:gmatch"%s*([^=]*)=([^=]*)%f[%s%z]" do

标签: parsing lua


【解决方案1】:

您需要区别对待值中的空格和键之前的空格。
下面的代码是一种方法。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多