Как распарсить CSV с лишними запятыми в кавычках?

имеем строки в файле:

"one","two,200",50,"asd_three",0
"one","two00",50,"asd,three",0

как распарсить это в переменные типа:

a1="one", 
a2="two,200", 
a3= 50, 
a4 = "asd_three"?

главной проблемой является нерегулярное появление запятой внутри текстового поля в разных колонках(только в тех, что в кавычках), так что просто split по запятой не прокатит и на кавычки не очень получается опереться, так как не все поля в кавычках.


Ответы (1 шт):

Автор решения: Alex R.

Есть несколько вариантов из похожего вопроса со SO

Например,

(?:^|,)(?=[^"]|(")?)"?((?(1)[^"]*|[^,"]*))"?(?=,|$)

(?:,|\n|^)("(?:(?:"")*[^"]*)*"|[^",\n]*|(?:\n|$))
→ Ссылка