using System.Collections.Generic;
using System.Text.RegularExpressions;
static string[] inputs = {
"'Test string ' , 'abc'",
"'Test string','abc','John's test'"
public static void Main()
foreach (string i in inputs)
IEnumerable<String> spl = Split(i);
Console.Write(String.Format("[{0}] = [{1}]", i, String.Join(", ", spl)));
public static IEnumerable<string> Split(string inpt)
IEnumerable<string> res = Regex.Split(inpt, @"('\s*,\s*'|^\s*'|'\s*$)").Where((x, i) => i % 2 == 0).Select(p => p.Trim()).Skip(1);
return res.Take(res.Count() - 1);