regex - 使用 lua 脚本解析 csv

标签 regex csv lua

我有一个包含如下数据的 csv 文件:

+12345678901,08:00:00,12:00:00,1111100,35703,test.domain.net
+12345678901,,,0000000,212,test.domain.net

我正在尝试编写将遍历每一行的 lua 代码,并创建一个值数组,如下所示:

local mylist = {}
for line in io.lines("data/dd.csv") do
        local id, start, finish, dow, int, domain = line:match("(+%d+),(%d*:*),(%d*:*),(%d*),(%d*),(%a*.*)")
        mylist[#mylist + 1] = { id = id, start = start, finish = finish, dow = dow, int = int, domain = domain}
        print(mylist[#mylist]['id'])
end

问题是,当代码遇到开始和结束值为空的行时,正则表达式失败并且所有字段都为零。

我认为使用 * 意味着 0 或更多... 我似乎找不到我的错误/错字。

谢谢。

最佳答案

这种模式适合我:

"(.-),(.-),(.-),(.-),(.-),(.-)$"

关于regex - 使用 lua 脚本解析 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902720/

相关文章:

windows - 帮助编写批处理脚本来解析 CSV 文件并输出文本文件

c++ - 序列化 lua_State 以通过网络发送

lua - 意外的 lua 模式匹配结果

regex - 如何解决此匹配并替换perl文件中仅第n次出现的单词的问题

python - 如何*正确*将数据从 csv 读取到 TensorFlow 1

Python,复杂的正则表达式解析器

python - 使用 Python 读取 UTF8 CSV 文件

nginx - Redis连接失败: connection refused from Nginx

c# - 正则表达式匹配除特定子字符串之外的字母数字

python - 正则表达式在 bs4 中不起作用