using System;
using System.Text.RegularExpressions;
namespace RegEx
{
class Program
{
static void Main(string[] args)
{
string original = "([+\\-*/%()]{1}|[=<>!]{1,2}|[&|]{2})";
string lordcheeto = @"\s*(==|&&|<=|>=|<|>)\s*";
string input = "Name=='mynme' && CurrentTime<45 - 4";
string input1 = "Name=='mynme' && CurrentTime<'2012-04-20 19:45:45'";
string ridiculous = "Name == BLAH && !@#>=$%^&*()< ASDF && this > that";
executePattern("original", input, original);
executePattern("lordcheeto's", input, lordcheeto);
executePattern("original", input1, original);
executePattern("lordcheeto's", input1, lordcheeto);
executePattern("original", ridiculous, original);
executePattern("lordcheeto's", ridiculous, lordcheeto);
}
static void executePattern(string version, string input, string pattern)
{
// Avoiding repitition for this example.
Console.WriteLine("Using {0} pattern:", version);
// Needs to be trimmed.
var result = Regex.Split(input.Trim(), pattern);
// Pipes included to highlight whitespace trimming.
foreach (var m in result)
Console.WriteLine("|{0}|", m);
// Extra space.
Console.WriteLine();
Console.WriteLine();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpuYW1lc3BhY2UgUmVnRXgKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBvcmlnaW5hbCA9ICIoWytcXC0qLyUoKV17MX18Wz08PiFdezEsMn18WyZ8XXsyfSkiOwogICAgICAgICAgICBzdHJpbmcgbG9yZGNoZWV0byA9IEAiXHMqKD09fCYmfDw9fD49fDx8PilccyoiOwoKICAgICAgICAgICAgc3RyaW5nIGlucHV0ID0gIk5hbWU9PSdteW5tZScgJiYgQ3VycmVudFRpbWU8NDUgLSA0IjsKICAgICAgICAgICAgc3RyaW5nIGlucHV0MSA9ICJOYW1lPT0nbXlubWUnICYmIEN1cnJlbnRUaW1lPCcyMDEyLTA0LTIwIDE5OjQ1OjQ1JyI7CiAgICAgICAgICAgIHN0cmluZyByaWRpY3Vsb3VzID0gIk5hbWUgPT0gQkxBSCAmJiAhQCM+PSQlXiYqKCk8IEFTREYgJiYgICAgdGhpcyAgICAgICAgICA+ICAgICAgICAgIHRoYXQiOwoKICAgICAgICAgICAgZXhlY3V0ZVBhdHRlcm4oIm9yaWdpbmFsIiwgaW5wdXQsIG9yaWdpbmFsKTsKICAgICAgICAgICAgZXhlY3V0ZVBhdHRlcm4oImxvcmRjaGVldG8ncyIsIGlucHV0LCBsb3JkY2hlZXRvKTsKICAgICAgICAgICAgZXhlY3V0ZVBhdHRlcm4oIm9yaWdpbmFsIiwgaW5wdXQxLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIGV4ZWN1dGVQYXR0ZXJuKCJsb3JkY2hlZXRvJ3MiLCBpbnB1dDEsIGxvcmRjaGVldG8pOwogICAgICAgICAgICBleGVjdXRlUGF0dGVybigib3JpZ2luYWwiLCByaWRpY3Vsb3VzLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIGV4ZWN1dGVQYXR0ZXJuKCJsb3JkY2hlZXRvJ3MiLCByaWRpY3Vsb3VzLCBsb3JkY2hlZXRvKTsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVQYXR0ZXJuKHN0cmluZyB2ZXJzaW9uLCBzdHJpbmcgaW5wdXQsIHN0cmluZyBwYXR0ZXJuKQogICAgICAgIHsKICAgICAgICAgICAgLy8gQXZvaWRpbmcgcmVwaXRpdGlvbiBmb3IgdGhpcyBleGFtcGxlLgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiVXNpbmcgezB9IHBhdHRlcm46IiwgdmVyc2lvbik7CgogICAgICAgICAgICAvLyBOZWVkcyB0byBiZSB0cmltbWVkLgogICAgICAgICAgICB2YXIgcmVzdWx0ID0gUmVnZXguU3BsaXQoaW5wdXQuVHJpbSgpLCBwYXR0ZXJuKTsKCiAgICAgICAgICAgIC8vIFBpcGVzIGluY2x1ZGVkIHRvIGhpZ2hsaWdodCB3aGl0ZXNwYWNlIHRyaW1taW5nLgogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiByZXN1bHQpCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgifHswfXwiLCBtKTsKCiAgICAgICAgICAgIC8vIEV4dHJhIHNwYWNlLgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgIH0KICAgIH0KfQ==