Rubyでsplitによる文字列の分割方法

2021年1月19日

String.splitは指定したデリミタ文字列で文字列をを分割してその結果を配列で返します。

本稿ではデリミタを省略した場合と指定した場合の返り値を説明していきます。

 

デリミタを省略した場合

デリミタを省略すると文字列の先頭と末尾のスペースを除去した上で、連続した空白文字で分割してくれます。

'A I U E O'.split      #=> ["A","I","U","E","O"]
'A I U E O'.split    #=> ["A","I","U","E","O"]

デリミタを指定した場合

下記は連続するスペースの代わりにカンマで区切る例です。 文字列の末尾に連続して現れるデリミタは無視されます。

'A,I,U,E,O'.split(',')        #=> ["A","I","U","E","O"]
'A, I, U, E, O'.split(',')    #=> ["A","I","U","E","O"]
'A,,B,C'.split(',')           #=> ["A", "", "B", "C"]
',,A,B,C'.split(',')          #=> ["", "", "A", "B", "C"]
'A,B,C,,,'.split(',')         #=> ["A", "B", "C"]            ★末尾の連続するセパレータは無視される
'A,B,C, , '.split(',')        #=> ["A", "B", "C", " ", " "]  ★セパレータ間にスペースがあれば無視されない