如何从推文中去除哈希标签并将它们作为数组返回?

4

我需要从一条推文中删除哈希标签,并将这些哈希标签作为数组返回。

我知道使用适当的正则表达式可以实现这一点,但我似乎找不到正确的正则表达式来使用。


请在提问时展示您之前编写的代码。这样可以让我们知道您在寻找答案的过程中所处的位置。 - the Tin Man
2个回答

10
hashtag_array = tweet.split.find_all{|word| /^#.+/.match word}

将包含推文的字符串进行分割(默认情况下,split会按空格进行分割),得到的数组包含推文中的所有单词。find_all返回一个由原始数组中满足给定块返回True的元素组成的数组。因此,在块中,我们检查以井号(#)开头的单词。

有关split方法的文档在此处,find_all在此处


如果我想返回没有哈希标签的推文怎么办? - Farbour
这可以更容易地通过单个正则表达式完成:hashless_tweet=tweet.gsub /(^|\s)#(.+?\s)/," " - Roadmaster

2
"#qwe rty#asd #fgh".scan(/(?:^|\s)(#\S+)/).flatten

或者

"#qwe rty#asd #fgh".split.grep /^#./

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接