我使用twitter API通过推文填充我的数据库。我现在希望能够在推文中搜索单词。我已经意识到这并不像使用LIKE那么简单,因为LIKE会执行以下操作:
如果搜索'pan'就会返回包含该字符串的单词的推文 比如'同伴'。
我已经决定使用正则表达式来解决这个问题。基本上我希望能够在我正在搜索的推文中找到完整的单词(不是如果它们包含在上面的其他单词中)。那么我怎么能这样做呢?
以下是我目前的情况:
SELECT tweet_id, text FROM tweets WHERE text REGEXP ''
我只是不确定正则表达式应该包含什么。
答案 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来获取适用于所有可能性的