есть строка например:
"первый","второй","123,67"
надое ее превратить в массив из 3 элементов разделителем должна служить запятая и элементы вытащить из ковычек. Причем запятая внутри кавычек не должна быть разделителем элементов. Т.е должно получиться
Разделить строку с разделителем ',' можно просто командой Split(new char{','}), но как поступить с этой же строкой с кавычками? Прогонять ее через цикл как массив байтов не хочется. Есть какое нибудь стандартное решение?
Можно использовать регулярные выражения:
var input = "\"первый\", \"второй\", \"123,67\"";
var output = new List<string>();
var csvSplit = new Regex("((?<=\")[^\"]*(?=\"(,|$)+)|(?<=,|^)[^,\"]*(?=,|$))", RegexOptions.Compiled);
foreach (Match match in csvSplit.Matches(input))
output.Add(match.Value.TrimStart(','));
foreach (var i in output)
Console.WriteLine(i);
Результат:
первый
второй
123,67
Или как советуют использовать csv парсер, например CSVHelper
Если формат стандартизирован, то можно сделать Split не по символу, а по строке "," - т.к. она и будет разделять элементы. Сперва удалив первую и последнюю кавычку - т.к. они не будут убраны Split'ом
"\"первый\",\"второй\",\"123,67\"".Trim('"').Split(new [] { "\",\"" }, StringSplitOptions.None)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
На форме есть Datagridview (с bindingsource) с вертикальной прокруткой (более 200 строк), в котором выделена строка и выполнена прокрутка, те
вопрос простой но для профизначит есть event и пара методов для добавления и удаления