using System; using System.Text.RegularExpressions; public class Test { public static void Main() { string pattern = @",(?=[^}]*(?:,|$))"; string input = @"""Key1""=123,""Key2""=""abc"",""key3""={""subkey1""=12,""subkey2""=""cd""},""key4""=456"; string[] result = Regex.Split(input, pattern, RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(500)); for (int ctr = 0; ctr < result.Length; ctr++) { Console.WriteLine("'{0}'", result[ctr]); } } }