using System;
using System.Text.RegularExpressions;
namespace RegEx
{
class Program
{
static void Main(string[] args)
{
string lordcheeto = @"\s*('.*?'|&&|==|<=|>=|<|>|\(|\)|\+|-|\|\|)\s*";
string input = "Name=='mynme' && CurrentTime<45 - 4";
string input1 = "Name=='mynme' && CurrentTime<'2012-04-20 19:45:45'";
string input2 = "((1==2) && 2-1==1) || 3+1==4 && Name=='Stefan+123'";
executePattern("lordcheeto's", input, lordcheeto);
executePattern("lordcheeto's", input1, lordcheeto);
executePattern("lordcheeto's", input2, lordcheeto);
Console.ReadLine();
}
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);
// Pipe included to highlight empty strings.
foreach (var m in result)
Console.WriteLine("|{0}", m);
// Extra space.
Console.WriteLine();
Console.WriteLine();
}
}
}
ICB1c2luZyBTeXN0ZW07CiAgdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKICBuYW1lc3BhY2UgUmVnRXgKICB7CiAgICAgIGNsYXNzIFByb2dyYW0KICAgICAgewogICAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgICAgewogICAgICAgICAgICAgIHN0cmluZyBsb3JkY2hlZXRvID0gQCJccyooJy4qPyd8JiZ8PT18PD18Pj18PHw+fFwofFwpfFwrfC18XHxcfClccyoiOwoKICAgICAgICAgICAgICBzdHJpbmcgaW5wdXQgPSAiTmFtZT09J215bm1lJyAmJiBDdXJyZW50VGltZTw0NSAtIDQiOwogICAgICAgICAgICAgIHN0cmluZyBpbnB1dDEgPSAiTmFtZT09J215bm1lJyAmJiBDdXJyZW50VGltZTwnMjAxMi0wNC0yMCAxOTo0NTo0NSciOwogICAgICAgICAgICAgIHN0cmluZyBpbnB1dDIgPSAiKCgxPT0yKSAmJiAyLTE9PTEpIHx8IDMrMT09NCAmJiBOYW1lPT0nU3RlZmFuKzEyMyciOwoKICAgICAgICAgICAgICBleGVjdXRlUGF0dGVybigibG9yZGNoZWV0bydzIiwgaW5wdXQsIGxvcmRjaGVldG8pOwogICAgICAgICAgICAgIGV4ZWN1dGVQYXR0ZXJuKCJsb3JkY2hlZXRvJ3MiLCBpbnB1dDEsIGxvcmRjaGVldG8pOwogICAgICAgICAgICAgIGV4ZWN1dGVQYXR0ZXJuKCJsb3JkY2hlZXRvJ3MiLCBpbnB1dDIsIGxvcmRjaGVldG8pOwoKICAgICAgICAgICAgICBDb25zb2xlLlJlYWRMaW5lKCk7CiAgICAgICAgICB9CgogICAgICAgICAgc3RhdGljIHZvaWQgZXhlY3V0ZVBhdHRlcm4oc3RyaW5nIHZlcnNpb24sIHN0cmluZyBpbnB1dCwgc3RyaW5nIHBhdHRlcm4pCiAgICAgICAgICB7CiAgICAgICAgICAgICAgLy8gQXZvaWRpbmcgcmVwaXRpdGlvbiBmb3IgdGhpcyBleGFtcGxlLgogICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJVc2luZyB7MH0gcGF0dGVybjoiLCB2ZXJzaW9uKTsKCiAgICAgICAgICAgICAgLy8gTmVlZHMgdG8gYmUgdHJpbW1lZC4KICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gUmVnZXguU3BsaXQoaW5wdXQuVHJpbSgpLCBwYXR0ZXJuKTsKCiAgICAgICAgICAgICAgLy8gUGlwZSBpbmNsdWRlZCB0byBoaWdobGlnaHQgZW1wdHkgc3RyaW5ncy4KICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiByZXN1bHQpCiAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJ8ezB9IiwgbSk7CgogICAgICAgICAgICAgIC8vIEV4dHJhIHNwYWNlLgogICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKICAgICAgICAgIH0KICAgICAgfQogIH0=