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