2013-03-27 69 views
1

我正在使用twitter API來填充我的數據庫中的推文。我現在希望能夠在推文中搜索單詞。我已經意識到這並不像使用LIKE因爲喜歡將執行以下操作簡單:MySQL REGEXP找到一個詞

如果像搜索「鍋」將返回所有包含該字符串 如「伴侶」字鳴叫。

我決定我需要使用正則表達式來解決這個問題。基本上,我希望能夠在我正在搜索的推文中只找到完整的單詞(如果它們包含在上面的其他單詞中)。那麼我將如何能夠做到這一點?

以下是我迄今爲止:

SELECT tweet_id, text FROM tweets WHERE text REGEXP '' 

我只是不確定的正則表達式應該包含的內容。

回答

4

你可以使用[[:<:]][[:>:]]作爲單詞邊界分別匹配單詞的開頭和結尾是,IES:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

SELECT tweet_id, text FROM tweets WHERE text REGEXP '[[:<:]]pan[[:>:]]' 
+0

我本來就不是知道MySQL等詞邊界正則表達式的 - 這確實不是我自己的答案工作更加好聽。 – 2013-03-27 18:35:05

+0

謝謝!並且對於來源也是如此。 – Nick 2013-03-27 18:54:00

0

如果你去http://gskinner.com/RegExr/你可以輸入一些測試數據並使用你的正則表達式字符串,直到你找到一個正確的工作。

作爲一個起點,你可能要像'.* pan .*'

. =通配符 .* =匹配1個或多個通配符

這會爲你搜索的實例工作但你需要用正則表達式來獲得一個適用於所有可能性的函數