如何识别字符串中的哈希标记词

时间:2014-01-27 14:06:46

标签: ruby-on-rails ruby

我想找到已在字符串中标记的单词并将变量设置为该标记

message = '#Identifier with some text'
tag = message.scan(/#\w+/)

这将返回一个标签数组。我希望字符串中只有一个标记的单词,所以我希望它返回一个单词,而不是一个数组。

文本通常不会很长,因为它是通过短信发送的。

功能的效率和速度显然是NB。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

执行以下操作String#[]

  

如果提供了Regexp,则返回字符串的匹配部分。如果捕获遵循正则表达式(可能是捕获组索引或名称),则遵循正则表达式,而不是返回MatchData的组件。

message = '#Identifier with some text'
message[/#\w+/] # => "#Identifier"

请记住:\w+表示[a-zA-Z0-9_]。如果您有更多字符后跟#符号,请使用显式字符类。与假设-一样,+等也可以存在,因此请使用显式字符类[a-zA-Z0-9_+-]作为示例 - message[/#[a-zA-Z0-9_+-]+/]