2013-03-27 67 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个或多个通配符

这会为你搜索的实例工作但你需要用正则表达式来获得一个适用于所有可能性的函数