使用字符串:
"/create channel welcome message, hello there, any words you like..."
我需要返回一个看起来像这样的数组:
["channel", "welcome message, hello there, any words you like..."]
使用正则表达式。
获取数组的最佳方法是什么?
答案 0 :(得分:5)
str = '/create channel welcome message, hello there, any words you like...'
str.split(/\s+/,3).drop(1)
#=> ["channel", "welcome message, hello there, any words you like..."]
请参见String#split,特别是使用可选的第二个参数limit
。
答案 1 :(得分:1)
如何在Ruby中使用捕获功能?
/\A\/create (?<command>[[:alpha:]]+) (?<message>.+)\Z
使用matching = <regex>.match(input)
将其与字符串匹配时,可以使用matching["command"]
和matching["message"]
访问命令和消息。像这样:
matching = /\A\/create (?<command>[[:alpha:]]+) (?<message>.+)\Z/.match(str)
arr = [matching["command"], matching["message"]]
以下是正则表达式工作的演示:https://rubular.com/r/Cam99r2rkRdSt2。
可以在Ruby文档中找到有关正则表达式的更多信息:Ruby Regexp Documentation。