2011-09-11 26 views
4

問題是,在字符串的具體部分中排除某些詞的詞序列搜索的正則表達式是什麼?正則表達式,用於像下面這樣的搜索查詢:word1 *(word2 -word3 -word4)* word5

例如,對於搜索請求:

word1 * (word2 -word3 -word4) * word5

(其中*意味着任何數量的任何詞語,並-word裝置不包括字)

匹配的字符串將被:

word1 word99 word2 word98 word97 word5

word1 word2 word5

不匹配:

word1 word99 word2 word98 WORD4 word97 word5

word1 WORD3 word2 word5

附:它用於使用REGEXP操作符在MySQL中進行搜索。

+0

http://stackoverflow.com/questions/1240275/how-to-negate-specific-word-in-regex –

+0

@Joseph Silber它不適用於MySQL。 – barbushin

回答

1

你將不能夠做到這一點與REGEXP,你應該在你的列創建FULLTEXT索引,做FULLTEXT searches,做搜索IN BOOLEAN MODE會給你所有你想要的功能。

+0

我無法使用FULL TEXT搜索,因爲MySQL表在InnoDB引擎上。無論如何,使用FULL TEXT不是問題,因爲沒有我需要的某些REGEXP功能。 – barbushin

1

嘗試使用獅身人面像,它具有所需的功能。

相關問題