我希望能够将字符串拆分为2个元素,因为每个字符串至少包含一个分隔符。
示例:"hello_world"
。如果我申请.split("_")
,我会收到:["hello", "world"]
。
当我有一个包含两个或更多分隔符的字符串时会出现问题。示例"hello_to_you"
。
我想收到:["hello_to", "you"]
。
我知道split函数的限制选项:.split("_", 2)
,但它产生:["hello", "to_you"]
。
所以,基本上,我需要将整个字符串与最后一个分隔符(“_”)分开。
答案 0 :(得分:6)
这正是String#rpartition
的作用:
first_part, _, last_part = 'hello_to_you'.rpartition('_')
first_part # => 'hello_to'
last_part # => 'you'
答案 1 :(得分:2)
试
'hello_to_you'.split /\_(?=[^_]*$)/
答案 2 :(得分:2)
class String
def split_by_last_occurrance(char=" ")
loc = self.rindex(char)
loc != nil ? [self[0...loc], self[loc+1..-1]] : [self]
end
end
"test by last_occurrance".split_by_last #=> ["test by", "last"]
"test".split_by_last_occurrance #=> ["test"]