例如:

"Angry Birds 2.4.1".split(" ", 2)
 => ["Angry", "Birds 2.4.1"] 

我怎样才能把这根绳子分成:["Angry Birds", "2.4.1"]

推荐答案

String#rpartition,例如.

irb(main):068:0> str = "Angry Birds 2.4.1"
=> "Angry Birds 2.4.1"
irb(main):069:0> str.rpartition(' ')
=> ["Angry Birds", " ", "2.4.1"]

由于返回值是一个数组,使用.first.last可以将结果视为一分为二,例如

irb(main):073:0> str.rpartition(' ').first
=> "Angry Birds"
irb(main):074:0> str.rpartition(' ').last
=> "2.4.1"

Ruby相关问答推荐

如何通过语法将Ruby Sorbet签名突出显示为不强调的 comments ?

定义Struct时如何指定成员的类型?

重写 Enum#inject 以在 Ruby 中将符号作为参数

仅在模块中列出方法?

从 URL 字符串中提取主机的 Ruby 代码

ruby `encode': "\xC3" 从 ASCII-8BIT 到 UTF-8 (Encoding::UndefinedConversionError)

需要Ruby

使用 Ruby 将文件从一个目录复制到另一个目录

无法在 Heroku 教程中使用 Python 启动工头

为 Ruby 模块中的每个方法调用执行代码

在 jekyll 博客中支持标签的简单方法

你能用 Ruby 开发原生 iPhone 应用程序吗?

如何在 ruby​​ rake 中明确地失败任务?

如何删除Ruby中数组中满足条件的所有元素?

Jekyll - 找不到命令

用元素填充数组 N 次

在 ruby​​ 的超类中调用另一个方法

使用 RSpec 测试哈希内容

Ruby on Rails switch

判断文件名是文件夹还是文件