using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var filter = @"abc = 'def' and size = '1 x(3"" x 5"")' and (name='Sam O\'neal')";
var pattern = @"('[^'\\]*(?:\\.[^'\\]*)*'|<=|>=|!=|=|>|<|\)|\(|\s+)";
var tokens = Regex.Split(filter, pattern).Where(x => !string.IsNullOrWhiteSpace(x));
foreach (var tok in tokens)
Console.WriteLine(tok);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBmaWx0ZXIgPSBAImFiYyA9ICdkZWYnIGFuZCBzaXplID0gJzEgeCgzIiIgeCA1IiIpJyBhbmQgKG5hbWU9J1NhbSBPXCduZWFsJykiOwoJCXZhciBwYXR0ZXJuID0gQCIoJ1teJ1xcXSooPzpcXC5bXidcXF0qKSonfDw9fD49fCE9fD18Pnw8fFwpfFwofFxzKykiOwoJCXZhciB0b2tlbnMgPSBSZWdleC5TcGxpdChmaWx0ZXIsIHBhdHRlcm4pLldoZXJlKHggPT4gIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoeCkpOwogICAgICAgIGZvcmVhY2ggKHZhciB0b2sgaW4gdG9rZW5zKQogICAgICAgIAlDb25zb2xlLldyaXRlTGluZSh0b2spOwoJfQp9