我在做:
"b::::c:::".split(':')
Run Code Online (Sandbox Code Playgroud)
结果:
["b", "", "", "", "c", "", ""] # expect
["b", "", "", "", "c"] # actual
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?我怎么能得到我所期望的.
可能重复:
Ruby中的拆分问题
在Ruby中,当我使用与字符串开头匹配的分隔符拆分字符串时,它会在数组的初始位置给出一个空字符串:
"abc".split(/a/) # => ["", "bc"]
Run Code Online (Sandbox Code Playgroud)
但是当我使用与字符串末尾匹配的分隔符执行类似的操作时,它不会给出空字符串:
"abc".split(/c/) # => ["ab"]
Run Code Online (Sandbox Code Playgroud)
这看起来与我不一致.这种规格是否有任何理由?
编辑 如果要与Perl的规范兼容,就像muu是简短的答案一样,那么问题仍然是相同的:为什么它在Perl中是这样的?因此,现在它也成了关于Perl的问题.