我得到这个结果(注意第一个""是前面的空匹配):
"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)
这背后的逻辑是什么?
逻辑在文档中描述:
如果
limit省略该参数,则禁止尾随空字段.
删除尾随空字段,但不删除前导字段.
如果任何机会,是你所问的是"是啊,哪来的逻辑是?",然后想象我们分析一些CSV.
fname,sname,id,email,status
,,1,sergio@example.com,
Run Code Online (Sandbox Code Playgroud)
我们希望前两个位置保持为空(而不是被删除,并且fname变为1并且sname - sergio@example.com).
我们更不关心尾随空白字段.删除或保留,他们不会移动数据.