using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string sentence = "355,170102,204500,204509,10,\"SOME TEXT 10\"\",\"COM\",\"COM\",\"Not Split\"";
string[] values = Regex.Split(sentence, "(?<=^[^\"]*\"[^\"]*\")\",|,(?=(?:[^\"]*\"[^\"]*\"\"?)*[^\"]*$)");
string sentence1 = "355.170102$204500.204509.10.#SOME TEXT 10.fdc==rtt#.COM.COM.Not Split";
string[] values1 = Regex.Split(sentence1, "(?<=^[^#]*#[^#]*#)#.|.(?=(?:[^#]*#[^#]*##?)*[^#]*$)");
foreach (string value in values)
Console.WriteLine(value);
Console.WriteLine("-------");
foreach (string value in values1)
Console.WriteLine(value);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpjbGFzcyBQcm9ncmFtCnsKICAgIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIHN0cmluZyBzZW50ZW5jZSA9ICIzNTUsMTcwMTAyLDIwNDUwMCwyMDQ1MDksMTAsXCJTT01FIFRFWFQgMTBcIlwiLFwiQ09NXCIsXCJDT01cIixcIk5vdCBTcGxpdFwiIjsKICAgICAgICBzdHJpbmdbXSB2YWx1ZXMgPSBSZWdleC5TcGxpdChzZW50ZW5jZSwgIig/PD1eW15cIl0qXCJbXlwiXSpcIilcIix8LCg/PSg/OlteXCJdKlwiW15cIl0qXCJcIj8pKlteXCJdKiQpIik7CiAgICAgCiAgICAgICAgc3RyaW5nIHNlbnRlbmNlMSA9ICIzNTUuMTcwMTAyJDIwNDUwMC4yMDQ1MDkuMTAuI1NPTUUgVEVYVCAxMC5mZGM9PXJ0dCMuQ09NLkNPTS5Ob3QgU3BsaXQiOwogICAgICAgIHN0cmluZ1tdIHZhbHVlczEgPSBSZWdleC5TcGxpdChzZW50ZW5jZTEsICIoPzw9XlteI10qI1teI10qIykjLnwuKD89KD86W14jXSojW14jXSojIz8pKlteI10qJCkiKTsKICAgICAKICAgICAKICAgICAgICBmb3JlYWNoIChzdHJpbmcgdmFsdWUgaW4gdmFsdWVzKQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSh2YWx1ZSk7CiAgICAKICAgIAlDb25zb2xlLldyaXRlTGluZSgiLS0tLS0tLSIpOwogICAgCQogICAgICAgIGZvcmVhY2ggKHN0cmluZyB2YWx1ZSBpbiB2YWx1ZXMxKQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSh2YWx1ZSk7CiAgICB9Cn0K