在Ruby中检索字符串的最后一部分?

在Ruby中检索字符串的最后一部分?,ruby,string,Ruby,String,假设我有一个字符串“like_this_string”,我想把它分成两部分:“like_this”和“string”。所以我可以这样做 first, last = "like_this_string".something first == "like_this" # true last == "string" # true 因此,last部分始终是最后一个“之后的字符串,第一个部分始终是最后一个“之前的字符串。我更喜欢一种更有效的方法,而不是字符串到数组的组合,获取最后一项,然后重新加入数组(

假设我有一个字符串
“like_this_string”
,我想把它分成两部分:
“like_this”
“string”
。所以我可以这样做

first, last = "like_this_string".something
first == "like_this" # true
last == "string" # true
因此,
last
部分始终是最后一个
之后的
字符串,
第一个
部分始终是最后一个
之前的
字符串。我更喜欢一种更有效的方法,而不是字符串到数组的组合,获取最后一项,然后重新加入数组(例如,
split
pop
join

我想用它

(我知道,这与使用
rpartition
非常相似……但增加可能性是Ruby的传统。)


(我知道,这与使用
rpartition
,实际上是一样的,但增加可能性是Ruby的传统。)

我只想指出另一种方法:

*first, last = "like_this_string".split('_')
first = first.join('_')

first #=> "like_this"
last  #=> "string"

我只想指出另一种方法:

*first, last = "like_this_string".split('_')
first = first.join('_')

first #=> "like_this"
last  #=> "string"

您的regexp看起来非常紧张
o_o
您的regexp看起来非常紧张
o_o
first, last = s[0..(ix=s.rindex("_"))-1], s[ix+1..-1]
*first, last = "like_this_string".split('_')
first = first.join('_')

first #=> "like_this"
last  #=> "string"