Feature #4335

String#split for empty string is always empty array

Added by phasis68 (Heesob Park) over 9 years ago. Updated 6 months ago.

Target version:


Here is ruby's behavior:

' '.split('/')
# => [" "]
# => []
# => []

Here is Python's behavior:

 >>> ' '.split('/')
 [' ']
 >>> ''.split('/')
 >>> '/'.split('/')
 ['', '']

Is there any chance to let ''.split('/') return [''] instead of []?

Related issues

Related to Ruby master - Feature #3575: String#split is inconsistent with empty string and negative limitCloseddrbrain (Eric Hodel)Actions

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Open to Feedback

We don't think we should follow Python's result
and your this proposal doesn't have enough reason to change current behavior even if it breaks compatibility.

I don't say there is no chance but it should be hard that you can show such strong reason.


Updated by nobu (Nobuyoshi Nakada) over 9 years ago

'/'.split('/', -1) returns ["", ""].
I don't think it's necessary to be default.

Updated by nahi (Hiroshi Nakamura) over 8 years ago

  • Description updated (diff)
  • Status changed from Feedback to Rejected

It's intended feature, and -1 is prepared for your purpose as Nobu said. #3575


Updated by sawa (Tsuyoshi Sawada) 6 months ago

  • Description updated (diff)

Also available in: Atom PDF