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]);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CiAgICAgICAgc3RyaW5nIHBhdHRlcm4gPSBAIiwoPz1bXn1dKig/Oix8JCkpIjsKICAgICAgICBzdHJpbmcgaW5wdXQgPSBAIiIiS2V5MSIiPTEyMywiIktleTIiIj0iImFiYyIiLCIia2V5MyIiPXsiInN1YmtleTEiIj0xMiwiInN1YmtleTIiIj0iImNkIiJ9LCIia2V5NCIiPTQ1NiI7CgogICAgICBzdHJpbmdbXSByZXN1bHQgPSBSZWdleC5TcGxpdChpbnB1dCwgcGF0dGVybiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2V4T3B0aW9ucy5JZ25vcmVDYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3Bhbi5Gcm9tTWlsbGlzZWNvbmRzKDUwMCkpOwogICAgICBmb3IgKGludCBjdHIgPSAwOyBjdHIgPCByZXN1bHQuTGVuZ3RoOyBjdHIrKykgCiAgICAgIHsKICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIid7MH0nIiwgcmVzdWx0W2N0cl0pOwoKICAgICAgfQoJfQp9