代码之家  ›  专栏  ›  技术社区  ›  sawa

拆分为空子字符串

  •  4
  • sawa  · 技术社区  · 5 年前

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

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

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

    "bbb".split("b")
    

    我期望得到以下结果:

    ["", "", ""]
    

    但实际上,我得到:

    []
    

    这背后的逻辑是什么?

    1 回复  |  直到 5 年前
        1
  •  8
  •   Sergio Tulentsev    5 年前

    描述了逻辑 in the documentation :

    如果 limit 参数被省略,尾随的空字段被抑制。

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


    如果你问的是“是的,但是逻辑在哪里?” 那个 “,然后假设我们正在分析一些csv。

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

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

    我们不太关心跟踪空字段。删除或保留,它们不移动数据。