For example:
\"Angry Birds 2.4.1\".split(\" \", 2)
=> [\"Angry\", \"Birds 2.4.1\"]
How can I split the string into: [\"Angry Bir
Something like this maybe ? Split where a space is followed by anything but a space till the end of the string.
"Angry Birds 2.4.1".split(/ (?=\S+$)/)
#=> ["Angry Birds", "2.4.1"]
reverse, split, then reverse every element and elements in array
"Angry Birds 2.4.1".reverse.split(' ', 2).map(&:reverse).reverse
String#rpartition, e.g.
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"]
Since the returned value is an array, using .first and .last would allow to treat the result as if it was split in two, e.g
irb(main):073:0> str.rpartition(' ').first
=> "Angry Birds"
irb(main):074:0> str.rpartition(' ').last
=> "2.4.1"
"Angry Birds 2.4.1".split(/ (?=\d+)/)