2011-02-13 78 views
2

我真的不知道如何準確問追問,但我希望的標題說,它已經。的Java字符串比較/使用布爾查詢匹配(例如包含(「(‘字詞1’AND‘單詞2’)或‘WORD3’」))

我正在尋找提供做String.contains()函數,它告訴我,如果給定的字符串相匹配的搜索查詢的能力的方法(框架/ lib目錄)。

String1: "word1 word2 word3" 
String2: "word3 word4 word5" 

我要問:

String1.contains("('word1' AND 'word2') OR 'word3'")") ==> TRUE 
String2.contains("('word1' AND 'word2') OR 'word3')") ==> TRUE 
String2.contains("('word1' AND 'word2')")") ==> FALSE 

有什麼哪我想要做什麼? 像Lucene搜索框架的東西出現在我的腦海裏,但這似乎矯枉過正,我想實現。

感謝您的任何提示。如果這個問題已經回答,那麼對不起,我還沒有找到它。

感謝 克里斯托夫

+0

你是專門尋找現有的第三方庫,做這個(或類似的東西)?另一種選擇是使用像ANTLR或JavaCC這樣的解析器生成器編寫自己的小解析器。 – 2011-02-14 07:59:59

+0

是的,我實際上正在尋找一些現有的東西,因爲我認爲,我可能不是第一個有此要求的人。 – Christoph 2011-02-14 15:59:25

回答

3

Lucene的確實有BooleanQuery類型的查詢,可以讓你做到這一點。但是如果你真的想像你的例子那樣簡單,爲什麼不使用普通的舊布爾運算符?

if ((string1.contains("word1") && string1.contains("word2")) 
    || string1.contains("word3") { 
    // ... 
} 
相關問題