Lua解析具有可变列数的CSV文件而不需要迭代

有没有可能解析像这样的CSV字符串:

DATA,063,20191001000000,aPA1: 994.39,aUBT: 12.30,bUSL: 1.50

其中这部分:

DATA,063,20191001000000

比较恒定——DATA可能是其他字符串,063可能是其他数字,但字段总是存在的——其余部分可以是以逗号分隔的可变数量格式的值,格式为:

label:[possible space]number

不使用某种形式的迭代吗?

我知道我可以使用string.gmatch(line,"[^,]+")然后迭代结果,但我正在寻找一种理想情况下使用一个字符串匹配(string.match())并使用适当的模式将其拆分并将结果保存到表中的解决方案,因此有较少的函数调用——从而使代码更快。

我还知道Lua正则表达式中的捕获不是这样工作的——您不能像string.match(line,"([^,]+)+")这样做——即捕获的重复,但是否有其他方法可以完成呢?

点赞