我得到以下结果(注意,第一个""
用于前面的空匹配):
"babab".split("b")
# => ["", "a", "a"]
通过在上面的输入中将"a"
替换为空字符串,如下所示,
"bbb".split("b")
我希望得到以下结果:
["", "", ""]
但实际上,我得到了:
[]
这背后的逻辑是什么?
答案 0 :(得分:8)
in the documentation描述了逻辑:
如果省略
limit
参数,则尾随的空字段将被禁止。
尾随的空白字段将被删除,但前导字段不会被删除。
如果碰巧您问的是“是的,但是 中的逻辑在哪里?”,那么想象我们正在解析一些CSV。
fname,sname,id,email,status
,,1,sergio@example.com,
我们想要前两个位置保持为空(而不是被删除,并且将fname设为1,并将其命名为-sergio@example.com)。
我们不太关心尾随空白字段。删除或保留后,它们不会移动数据。