У меня есть файл 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 или больше... Я не могу найти свою ошибку/опечатку.
Спасибо.
"(%+%d+),([0-9:]*),([0-9:]*),(%d*),(%d*),(.*)"
- person Wiktor Stribiżew   schedule 06.10.2016