Я пишу небольшое справочное приложение, в котором у меня есть удобная консоль для быстрых запросов к кешу для проверки работоспособности и т. Д.
т.е.
get SomeField=Blue
тогда получим все объекты из кэша, соответствующие этому фильтру.
Я могу применить больше фильтров
get SomeField=Blue && SomeOtherField < 5
это может стать более сложным, если я решу поддержать ()
Какой хороший шаблон использовать здесь? или, возможно, компонент, который может взять строку и токенизировать ее для меня?
например, я бы хотел разбить следующее на подмножество фильтров
get ((field1=x || field1=y) && field2>x)
единственный способ, которым я могу думать об этом, это регулярное выражение, а затем передать подстроки различным подпрограммам, предназначенным для создания определенного фильтра. (т.е. AndEquals, OrEquals, AndGraterThan и т. д.)