使用 C# 我正在尝试向我正在处理的应用程序添加搜索功能,但我想编写一个可以反复使用的搜索提供程序,它将接收用户输入的查询字符串,然后将其解析为结果字典。字典将只包含关键字和值。IE。关键字“last”和值“Simpson”
我想允许搜索字段接受普通字符串、带引号的字符串和带参数的字符串,就像 Windows 搜索一样。它不必像 Windows Search 那样广泛。显然,必须先解析用户输入的查询字符串,然后再将解析后的查询字符串解释为对数据源的查询。
有人如何着手编写词法分析器或可以将用户可以输入的多种变体解析为实际有用的东西?是否有任何框架可以使这更容易,例如指定关键字和参数?基本上我正在寻找的是一些关于如何开始的信息。我做实际工作没有问题,我只是不知道从哪里开始尝试这样做。普通字符串和带引号的字符串很容易解析,但参数字符串一直是让我感到困惑的曲线球。
Example of plain query strings:
- hello.txt
- one two three
Example of quoted strings:
- "one two"
- one "two three"
Example of parametered strings:
- last:simpson
- first:bart
- name:"Bart Simpson"
- name:"Bart Simpson" age:12
- hello name:"Bart Simpson" fart age:12