2013-06-06 61 views
0

我有一個搜索引擎用於我的網站。搜索的後端是用Java實現的。我想爲我的搜索添加一些高級搜索功能。這些關鍵字的作用類似於Google或Bing的關鍵字。例如filetype:pdfsite:example.com。當我將查詢作爲String獲取時,我想分析這些變量,然後運行查詢。正則表達式似乎是明顯的選擇,但我想知道是否有更好/更快的方式。解析鍵:來自查詢的值字符串(如搜索引擎)

回答

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

+0

所以你建議我堅持'正則表達式'?這就是我想到的。這是「標準」解決方案嗎?我的意思是谷歌使用這個或更復雜的解析器爲他們的查詢引擎? –