これはおそらくバグではなく、意図された動作です。ドキュメントによると、配列を分割します。
区切り値またはオプションのブロックの結果に基づいて、配列を1つ以上のサブアレイに分割します。
これは、隣接するまたは主要なスペースについて保証するものではありません。
一方、 Ruby Coreドキュメント 為に String#split
州:
パターンが文字列の場合、その内容はstrを分割するときに区切り文字として使用されます。パターンが単一のスペースの場合、STRは空白に分割され、主要な空白と連続した空白のキャラクターの走行が無視されます。
ご覧のとおり、予想される動作は、文字列だけではなく、Whitespaceでのみ機能します。
"abc ccc def ".split("c")
=> ["ab", " ", "", "", " def "]
アレイを分割するとき、「Whitespace」の概念はこれ以上意味がありません。ですから、おそらく最初は直感に反する場合、行動は賢明だと思います。