在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"