【问题标题】:Split string and get last element拆分字符串并获取最后一个元素
【发布时间】:2016-09-20 06:37:34
【问题描述】:

假设我有一列的值如下:

foo/bar
chunky/bacon/flavor
/baz/quz/qux/bax

即由/分隔的可变数量的字符串。

在另一列中,我想从每个字符串中获取最后一个元素,在它们在/ 上拆分之后。因此,该列将具有:

bar
flavor
bax

我想不通。我可以在/ 上拆分并得到一个数组,我可以看到函数 INDEX 从数组中获取特定编号的索引元素,但是在这个函数中找不到说“最后一个元素”的方法。

【问题讨论】:

    标签: regex google-sheets split google-sheets-formula re2


    【解决方案1】:

    编辑: 这个比较简单:

    =REGEXEXTRACT(A1,"[^/]+$")
    

    你可以使用这个公式:

    =REGEXEXTRACT(A1,"(?:.*/)(.*)$")
    

    也可以作为ArrayFormula使用:

    =ARRAYFORMULA(REGEXEXTRACT(A1:A3,"(?:.*/)(.*)$"))
    

    这里有更多信息:


    这个公式也一样:

    =INDEX(SPLIT(A1,"/"),LEN(A1)-len(SUBSTITUTE(A1,"/","")))
    

    但是A1需要3次,这是不可取的。

    【讨论】:

      【解决方案2】:

      也有可能,最好在副本上使用 Find:

      .+/ 
      

      Replace with空白)和Search using regular expressions打勾。

      【讨论】:

        【解决方案3】:

        你也可以这样做

        =index(SPLIT(A1, "/"), COLUMNS(SPLIT(A1, "/"))-1)
        

        【讨论】:

        • 与已接受的答案中概述的选项相比,这种方法有哪些好处或权衡?
        【解决方案4】:

        你可以试试这个!

        你已经得到了字符串数组,所以你可以按长度访问最后一个元素

        String message =  "chunky/bacon/flavor";
        String[] outSplited = message.split("/");
        
        System.out.println(outSplited[outSplited.length -1]);
        

        【讨论】:

        • 猜测反对票是因为这是在 Java 中,问题是关于使用谷歌表格
        猜你喜欢
        • 2013-01-02
        • 2018-12-26
        • 1970-01-01
        • 2020-08-25
        • 2010-10-13
        • 1970-01-01
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多