using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var delimiters = new List<string> { " ", "(", ")", ">", "<", ",", ";"};
var line = "if(a>b) write(\"My new result\")";
var escaped_delimiters = new List<string>();
escaped_delimiters.Add(@"""[^""\\]*(?:\\.[^""\\]*)*""");
escaped_delimiters.AddRange(delimiters.Select(d => Regex.Escape(d)).ToList());
var pattern = "(" + String.Join("|", escaped_delimiters) + ")";
var result = Regex.Split(line, pattern).Where(x => !String.IsNullOrWhiteSpace(x)).ToList();
foreach (var s in result)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBkZWxpbWl0ZXJzID0gbmV3IExpc3Q8c3RyaW5nPiB7ICIgIiwgIigiLCAiKSIsICI+IiwgIjwiLCAiLCIsICI7In07CiAgICAJdmFyIGxpbmUgPSAiaWYoYT5iKSB3cml0ZShcIk15IG5ldyByZXN1bHRcIikiOwogICAgCXZhciBlc2NhcGVkX2RlbGltaXRlcnMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAJZXNjYXBlZF9kZWxpbWl0ZXJzLkFkZChAIiIiW14iIlxcXSooPzpcXC5bXiIiXFxdKikqIiIiKTsKICAgIAllc2NhcGVkX2RlbGltaXRlcnMuQWRkUmFuZ2UoZGVsaW1pdGVycy5TZWxlY3QoZCA9PiBSZWdleC5Fc2NhcGUoZCkpLlRvTGlzdCgpKTsKICAgIAl2YXIgcGF0dGVybiA9ICIoIiArIFN0cmluZy5Kb2luKCJ8IiwgZXNjYXBlZF9kZWxpbWl0ZXJzKSArICIpIjsKICAgIAl2YXIgcmVzdWx0ID0gUmVnZXguU3BsaXQobGluZSwgcGF0dGVybikuV2hlcmUoeCA9PiAhU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh4KSkuVG9MaXN0KCk7CiAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gcmVzdWx0KQogICAgICAgIAlDb25zb2xlLldyaXRlTGluZShzKTsKCX0KfQ==