拆分成空子串

saw*_*awa 4 ruby string split

我得到这个结果(注意第一个""是前面的空匹配):

"babab".split("b")
# => ["", "a", "a"]
Run Code Online (Sandbox Code Playgroud)

通过"a"在上面的输入中替换为空字符串,如下所示,

"bbb".split("b")
Run Code Online (Sandbox Code Playgroud)

我希望得到以下结果:

["", "", ""]
Run Code Online (Sandbox Code Playgroud)

但实际上,我得到:

[]
Run Code Online (Sandbox Code Playgroud)

这背后的逻辑是什么?

Ser*_*sev 8

逻辑在文档中描述:

如果limit省略该参数,则禁止尾随空字段.

删除尾随空字段,但不删除前导字段.


如果任何机会,是你所问的是"是啊,哪来的逻辑?",然后想象我们分析一些CSV.

fname,sname,id,email,status
,,1,sergio@example.com,
Run Code Online (Sandbox Code Playgroud)

我们希望前两个位置保持为空(而不是被删除,并且fname变为1并且sname - sergio@example.com).

我们更不关心尾随空白字段.删除或保留,他们不会移动数据.