Просто добавляю решение, над которым я работал сегодня утром.
var regex = new Regex("(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)");
foreach (Match m in regex.Matches("<-- input line -->"))
{
var s = m.Value;
}
Как видите, вам нужно вызвать regex.Matches () на строку . Затем он вернет MatchCollection с тем же количеством элементов, что и у вас, как в столбцах. Свойство Value каждого совпадения, очевидно, является проанализированным значением.
Эта работа еще не завершена, но она, к счастью, анализирует строки CSV, например:
2,3.03,"Hello, my name is ""Joshua""",A,B,C,,,D