2015-06-17 82 views
-2

开始比赛的话到目前为止,我有红宝石正则表达式 - 这与#

def get_hashtags(post) 
    words = post.scan(/\#(\w+)/) 
end 

其中一期工程,但它也得到像“在#线”的话,而我只希望它们与#开头的单词。

我试过使用\ b,但我似乎无法弄清楚。

任何帮助将不胜感激。

谢谢!

+0

有了您的正则表达式你正好与#说的话之前使用空白边界。在'在#行'的情况下,它会捕获#line。这里有什么问题? –

+0

问题出在#行不以#开头,它以'i'开头,所以不应选择它。 – user2085143

+0

所以它不会捕获'我',这正是hashtags的工作方式。 '#one#two'是2个正确的#标签。你说,它应该只捕获'#one'或被捕获为一个单一的hashtag? –

回答

1

我将在#

/(?<!\S)\#(\w+)/