我需要能够以编程方式扩展用户的搜索表达式,例如:
X w / 5(Y || Z)
至
“X Y”~5 || “X Z”〜5
我可以利用现有的库来做这种事情吗?如果没有,建议采用什么方法?该解决方案将存在于.NET环境中。
答案 0 :(得分:1)
您需要的是一个解析器,它将创建一个抽象语法树,然后您可以对其进行操作。看看here。
答案 1 :(得分:1)
您需要查看一下联合正常形式http://en.wikipedia.org/wiki/Conjunctive_normal_form和析取正常形式:http://en.wikipedia.org/wiki/Disjunctive_normal_form。
您可以实现一种算法以及指向java实现的链接。