Feature #3575

String#split is inconsistent with empty string and negative limit

Added by Conrad.Irwin (Conrad Irwin) almost 10 years ago. Updated 2 months ago.

Target version:


Currently works like this:

"".split(",", -1) # => []

According to the documentation, blank fields should not be stripped when a negative offset is provided. I expect:

"".split(",", -1) # => [""]

Related issues

Related to Ruby master - Feature #4335: String#split for empty string is always empty arrayRejectedActions
Related to Ruby master - Feature #5120: String#split needs to be logicalRejectedmatz (Yukihiro Matsumoto)Actions

Updated by akr (Akira Tanaka) over 8 years ago

  • Description updated (diff)

I think Ruby thinks "" has no fields, not one field which have empty string.

So, "".split(",", -1) should return [].

Documentation issue, maybe.

Updated by drbrain (Eric Hodel) over 8 years ago

  • Category changed from core to doc
  • Assignee set to drbrain (Eric Hodel)

I will add a note to the documentation to cover the behavior of empty strings.

Updated by mame (Yusuke Endoh) over 8 years ago

  • Status changed from Open to Assigned

Updated by drbrain (Eric Hodel) about 8 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r35275.
Conrad, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

  • string.c (rb_str_split_m): Documented behavior of split on the empty string. [ruby-trunk - Feature #3575]

Updated by sawa (Tsuyoshi Sawada) 2 months ago

  • Description updated (diff)

Also available in: Atom PDF