【问题标题】:Rails split by last delimiter [duplicate]Rails被最后一个分隔符分割[重复]
【发布时间】:2013-03-07 10:53:08
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: ruby-on-rails ruby regex split delimiter


【解决方案1】:

这正是String#rpartition 所做的:

first_part, _, last_part = 'hello_to_you'.rpartition('_')
first_part # => 'hello_to'
last_part # => 'you'

【讨论】:

  • 太棒了,我不知道这个方法
【解决方案2】:

试试

'hello_to_you'.split /\_(?=[^_]*$)/

【讨论】:

  • 谢谢。干净,简单,效果很好!正是我需要的!
  • 不要逃避_。也不是/_(?!.*_)/ 更容易吗?
【解决方案3】:
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"]

【讨论】:

  • 谢谢 :) 应该可以正常工作
  • 不要重新发明轮子,看看我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2012-05-12
  • 1970-01-01
相关资源
最近更新 更多