我正在尝试为我的某个程序创建搜索功能,我的计划是让用户使用类似的内容搜索内容
((network || system) && (ip || dns || bios)) && (version || name)
所以只要字符串匹配此搜索词,如
NETWORK: ****** DNS: ******* NAME: *******
或
SYSTEM BIOS VERSION: ****
它会识别它。
但我无法弄清楚如何实现这一点。
我考虑过整个搜索术语并将其分成几部分,但由于我不知道有多少AND或OR会在那里,我不知道该怎么做。
答案 0 :(得分:3)
为了做到这一点,您需要的不仅仅是一些字符串比较。实际上,你正在寻找一个解析器,它可以解析语句并形成一些可以理解的东西,无论是否适合你。
我建议你看看ANTLR,它是一个解析器/词法分析器。它也有C#的模板。
答案 1 :(得分:1)
你可以做两件事:
自己写一个简单的解析器并不是很难(如果你对它背后的理论有足够的了解)。否则使用像@Patrick suggested(ANTLR)这样的现成工具包,它也涉及相当多的学习曲线。