2011-09-11 3 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

P.S.これは、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

MySQLテーブルがInnoDBエンジン上にあるため、フルテキスト検索を使用できません。とにかくFULL TEXTを使用しているのは、私が必要とするREGEXPの機能がないためです。 – barbushin

1

スフィンクスを使用しようとすると、機能が必要になります。