MySQL REGEXP找到一个单词

时间:2013-03-27 18:30:29

标签: mysql regex

我使用twitter API通过推文填充我的数据库。我现在希望能够在推文中搜索单词。我已经意识到这并不像使用LIKE那么简单,因为LIKE会执行以下操作:

  

如果搜索'pan'就会返回包含该字符串的单词的推文     比如'同伴'。

我已经决定使用正则表达式来解决这个问题。基本上我希望能够在我正在搜索的推文中找到完整的单词(不是如果它们包含在上面的其他单词中)。那么我怎么能这样做呢?

以下是我目前的情况:

SELECT tweet_id, text FROM tweets WHERE text REGEXP ''

我只是不确定正则表达式应该包含什么。

2 个答案:

答案 0 :(得分:5)

您可以分别使用[[:<:]][[:>:]]作为与单词开头和结尾匹配的单词边界:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

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

答案 1 :(得分:0)

如果您转到http://gskinner.com/RegExr/,您可以输入一些测试数据并使用正则表达式字符串,直到找到一个正常工作的字符串。

作为起点,您可能想要'.* pan .*'

之类的东西

. =通配符 .* =匹配一个或多个通配符

这适用于大多数搜索示例,但您需要使用regexr来获取适用于所有可能性的