0
我有一個搜索引擎用於我的網站。搜索的後端是用Java實現的。我想爲我的搜索添加一些高級搜索功能。這些關鍵字的作用類似於Google或Bing的關鍵字。例如filetype:pdf
或site:example.com
。當我將查詢作爲String
獲取時,我想分析這些變量,然後運行查詢。正則表達式似乎是明顯的選擇,但我想知道是否有更好/更快的方式。解析鍵:來自查詢的值字符串(如搜索引擎)
我有一個搜索引擎用於我的網站。搜索的後端是用Java實現的。我想爲我的搜索添加一些高級搜索功能。這些關鍵字的作用類似於Google或Bing的關鍵字。例如filetype:pdf
或site:example.com
。當我將查詢作爲String
獲取時,我想分析這些變量,然後運行查詢。正則表達式似乎是明顯的選擇,但我想知道是否有更好/更快的方式。解析鍵:來自查詢的值字符串(如搜索引擎)
假設你在列表中選擇有效的關鍵詞集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
所以你建議我堅持'正則表達式'?這就是我想到的。這是「標準」解決方案嗎?我的意思是谷歌使用這個或更復雜的解析器爲他們的查詢引擎? –