解析密钥:来自查询的值字符串(如搜索引擎)

时间:2013-06-06 05:43:06

标签: java regex search-engine

我的网站有搜索引擎。搜索的后端是用Java实现的。我想在搜索中添加一些高级搜索功能。这些关键字的工作方式类似于Google或Bing的关键字。例如filetype:pdfsite:example.com。当我将查询作为String时,我想解析这些变量,然后运行查询。正则表达似乎是明显的选择,但我想知道是否有更好/更快的方式。

1 个答案:

答案 0 :(得分:1)

假设您在列表validKeywordLst

中有一组有效的关键字

您可以使用此正则表达式

(?<keyword>\\w+)\\s*:\\s*(?<value>\\S+)

您的代码将是

Pattern r = Pattern.compile(regex);
Matcher m = r.matcher(inputSearch);
 if (m.find( )) 
 {
     m.group("keyword");m.group("value");
 }

现在,您可以使用validKeywordLst

检查关键字是否有效
相关问题