using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
var input = "1,\"TEST\",22345,\"18,95\", Ab\"cde,1,2,,4";
List<string> results = Regex.Matches(input, @"""(?<value>.*?)""|(?<value>[^,]*)")
.Select(m => m.Groups["value"].Value)
results.ForEach(r => Console.WriteLine(r));