1

Twitter API を使用して、データベースにツイートを入力しています。ツイート内の単語を検索できるようにしたいと考えています。LIKE は次のことを行うため、これは LIKE を使用するほど単純ではないことに気付きました。

「パン」を検索すると、「コンパニオン」など、その文字列を含む単語を含むツイートが返されます。

これを解決するには、正規表現を使用する必要があると判断しました。基本的には、検索しているツイートで完全な単語 (上記のような他の単語に含まれている場合ではない) のみを検索できるようにしたいと考えています。では、どうすればこれを行うことができますか?

以下は私がこれまでに持っているものです:

SELECT tweet_id, text FROM tweets WHERE text REGEXP ''

正規表現に何を含めるべきかわかりません。

4

2 に答える 2

7

それぞれ単語の先頭と末尾に一致する単語境界として[[:<:]]とを使用できます: http://dev.mysql.com/doc/refman/5.1/en/regexp.html[[:>:]]

SELECT tweet_id, text FROM tweets WHERE text REGEXP '[[:<:]]pan[[:>:]]'
于 2013-03-27T18:33:08.250 に答える
0

http://gskinner.com/RegExr/にアクセスすると、いくつかのテスト データを入力して、適切に機能する文字列が得られるまで正規表現文字列をいじることができます。

出発点として、おそらく次のようなものが必要です'.* pan .*'

.= ワイルドカード文字 .*= 1 つ以上のワイルドカード文字に一致

これは検索のほとんどの例で機能しますが、すべての可能性で機能するものを取得するには、regexr をいじる必要があります。

于 2013-03-27T18:32:45.623 に答える