2

我希望能够将字符串拆分为 2 个元素,因为每个字符串都至少包含一个分隔符。

示例:"hello_world"。如果我申请.split("_"),我会收到:["hello", "world"].

当我有一个带有两个或多个分隔符的字符串时,就会出现问题。例子"hello_to_you"。我想收到:["hello_to", "you"]

我知道 split 函数的 limit 选项:.split("_", 2),但它产生:["hello", "to_you"]

所以,基本上,我只需要用最后一个分隔符(“_”)分割整个字符串。

4

3 回答 3

9

这正是这样String#rpartition做的:

first_part, _, last_part = 'hello_to_you'.rpartition('_')
first_part # => 'hello_to'
last_part # => 'you'
于 2013-03-07T15:51:16.627 回答
3

尝试

'hello_to_you'.split /\_(?=[^_]*$)/
于 2013-03-07T10:57:06.827 回答
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"]
于 2013-03-07T11:00:29.900 回答