2

各文字列には少なくとも 1 つの区切り文字が含まれるため、文字列を 2 つの要素に分割できるようにしたいと考えています。

例: "hello_world". 申請する.split("_")と、次のものが届きます["hello", "world"]

文字列に 2 つ以上の区切り記号がある場合に問題が発生します。例"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 に答える