我想找到已在字符串中标记的单词并将变量设置为该标记
message = '#Identifier with some text'
tag = message.scan(/#\w+/)
这将返回一个标签数组。我希望字符串中只有一个标记的单词,所以我希望它返回一个单词,而不是一个数组。
文本通常不会很长,因为它是通过短信发送的。
功能的效率和速度显然是NB。
感谢您的帮助。
答案 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_+-]+/]