拆分为空子字符串

时间:2019-01-25 05:59:08

标签: ruby string split

我得到以下结果(注意,第一个""用于前面的空匹配):

"babab".split("b")
# => ["", "a", "a"]

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

"bbb".split("b")

我希望得到以下结果:

["", "", ""]

但实际上,我得到了:

[]

这背后的逻辑是什么?

1 个答案:

答案 0 :(得分:8)

in the documentation描述了逻辑:

  

如果省略limit参数,则尾随的空字段将被禁止。

尾随的空白字段将被删除,但前导字段不会被删除。


如果碰巧您问的是“是的,但是 中的逻辑在哪里?”,那么想象我们正在解析一些CSV。

fname,sname,id,email,status
,,1,sergio@example.com,

我们想要前两个位置保持为空(而不是被删除,并且将fname设为1,并将其命名为-sergio@example.com)。

我们不太关心尾随空白字段。删除或保留后,它们不会移动数据。