split(sep = $;, limit = 0) -> [String]
[permalink][rdoc]第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、結果を文字列の配列で返します。
第 1 引数 sep は以下のいずれかです。
正規表現にマッチする部分で分割する。特に、括弧によるグルーピングがあればそのグループにマッチした文字列も結果の配列に含まれる (後述)。
その文字列自体にマッチする部分で分割する。
先頭と末尾の空白を除いたうえで、空白文字列で分割する。
常に $; で分割する。 $; も nil の場合は、先頭と末尾の空白を除いたうえで、空白文字列で分割する。
文字列を 1 文字ずつに分割する。マルチバイト文字を認識する。
sep が正規表現で、かつその正規表現に括弧が含まれている場合には、各括弧のパターンにマッチした文字列も配列に含まれます。括弧が複数ある場合は、マッチしたものだけが配列に含まれます。
第 2 引数 limit は以下のいずれかです。
最大 limit 個の文字列に分割する
分割個数制限はなしで、配列末尾の空文字列を取り除く
分割個数の制限はなし
p " a \t b \n c".split(/\s+/) # => ["", "a", "b", "c"]
p " a \t b \n c".split(nil) # => ["a", "b", "c"]
p " a \t b \n c".split(' ') # => ["a", "b", "c"] # split(nil) と同じ
p " a \t b \n c".split # => ["a", "b", "c"] # split(nil) と同じ
p '1-10,20'.split(/([-,])/) # => ["1", "-", "10", ",", "20"]
p 'hi there'.split(/\s*/).join(':') # => "h:i:t:h:e:r:e"
p 'hi there'.split(//).join(':') # => "h:i: :t:h:e:r:e"
p "a,b,c,,,".split(/,/, 0) # => ["a", "b", "c"]
p "a,b,c,,,".split(/,/) # => ["a", "b", "c"]
p "a,b,c,d,e".split(/,/, 1) # => ["a,b,c,d,e"]
p "a,b,c,d,e".split(/,/, 2) # => ["a", "b,c,d,e"]
p "a,b,c,d,e".split(/,/, 3) # => ["a", "b", "c,d,e"]
p "a,b,c,d,e".split(/,/, 4) # => ["a", "b", "c", "d,e"]
p "a,b,c,d,e".split(/,/, 5) # => ["a", "b", "c", "d", "e"]
p "a,b,c,d,e".split(/,/, 6) # => ["a", "b", "c", "d", "e"]
p "a,b,c,d,e".split(/,/, 7) # => ["a", "b", "c", "d", "e"]
p "a,b,c,,,".split(/,/, -1) # => ["a", "b", "c", "", "", ""]
[SEE_ALSO] String#partition, String#rpartition