Lua парсинг csv с переменным количеством столбцов без итерации - PullRequest
0 голосов
/ 29 марта 2020

возможно ли проанализировать строку csv, которая выглядит следующим образом:

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

где эта часть:

DATA, 063,20191001000000

несколько постоянна - DATA может быть какой-то другой строкой и 063 некоторым другим числом, но поля всегда есть - а остальные могут быть переменным числом значений, разделенных запятой, в формате:

метка: [возможный пробел] число

без использования какой-либо итерации?

Я знаю, что могу использовать string.gmatch (line, "[^,] +"), а затем перебрать результат, но я ищу решение, которое в идеале использует один string.match ( ) с соответствующим шаблоном, который может разбить строку и сохранить результат в таблицу, чтобы было меньше вызовов функций - чтобы сделать код быстрее.

Я также знаю, что захваты в Lua регулярном выражении не работают таким образом - вы не можете сделать что-то вроде string.match (line, "([^,] +) +") - ie повторение захвата, но есть ли другой способ сделать это?

...