【问题标题】:How to parse a configuration file (kind of a CSV format) using LUA如何使用 LUA 解析配置文件(一种 CSV 格式)
【发布时间】:2021-06-27 01:41:37
【问题描述】:

我在一个小型 ESP8266 芯片上使用 LUA,试图解析如下所示的文本字符串。我是 LUA 的新手,尝试了很多在这个论坛上找到的类似脚本。

data="
-- String to be parsed\r\n
Tiempo1,20\r\n
Tiempo2a,900\r\n
Hora2b,27\r\n
Tiempo2b,20\r\n
Hora2c,29\r\n
Tiempo2c,18\r\n"

我的目标是解析字符串,并返回所有配置对(名称/值)。 如果需要,我可以修改配置文件的语法,因为它是由我创建的。 我一直在尝试这样的事情:

var1,var2 = data:match("([Tiempo2a,]), ([^,]+)")

但它返回 nil,nil。我认为我这样做的方式非常错误。

非常感谢您的帮助。

【问题讨论】:

    标签: string lua


    【解决方案1】:

    您需要使用gmatch并在行尾解析不包括不可打印字符(\r\n)的值或使用%d+

    local data=[[
    -- String to be parsed
    Tiempo1,20
    Tiempo2a,900
    Hora2b,27
    Tiempo2b,20
    Hora2c,29
    Tiempo2c,18]]
    
    local t = {}
    for k,v in data:gmatch("(%w-),([^%c]+)") do
       t[#t+1] = { k, v }
       print(k,v)
    end
    

    【讨论】:

    • 优秀的@Mike-V,完美运行。在 for 循环之后,我查找了每个特定的配置变量,并得到了值。非常感谢。
    • @JotaJotaGon 你可以投票并标记为已回答/welcome/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多