c# - 如何为搜索查询创建解析器

标签 c# asp.net parsing logic

例如,我需要创建类似谷歌搜索查询解析器的东西来解析如下表达式:

flying hiking or swiming -"**walking in boots **" **author:**hamish **author:**reid

house in new york priced over $500000 with a swimming pool

我什至要如何着手构建类似的东西?有什么好的资源吗?

c#相关,请(如果可能)

  • 编辑:这是我应该能够以某种方式转换为 sql 查询的东西

最佳答案

您有多少个关键字(例如“或”、“在”、“价格高于”、“有”)?如果您只有其中几个,我建议您也使用简单的字符串处理(正则表达式)。

但如果您有更多的内容,您可能需要考虑为这些搜索表达式实现一个真正的 解析器。 Irony.net可能会帮助你(我发现它非常容易使用,因为你可以直接在代码中以接近 bnf 的形式表达你的语法)。

关于c# - 如何为搜索查询创建解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1693831/

相关文章:

c# - 从 VS2008 升级到 2010 后,Crystal Reports 工具栏不见了

c# - ContentResult 指令或程序集丢失?

c# - ASP.net MVC3 从 HTML 表单获取复选框值

asp.net - XSLT 母版页?

c# - 从类中返回日期

c# - GridView排序和分页

c# - 如何计算任务中的列表?

c# - ASP.NET Identity CreateAsync 返回错误 "Name cannot be null or empty."

c - 在c中处理输入文件

c# - 如何解析字符串以匹配 C# 中的模式