拆分字符串并获取最后一个元素

问题描述 投票:0回答:5

假设我有一个列,其值如下:

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

即由

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

在另一列中,我想在这些字符串在

/
上拆分后,从每个字符串中获取最后一个元素。 所以,该专栏将有:

bar
flavor
bax

我无法弄清楚这一点。 我可以在

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

regex google-sheets split google-sheets-formula re2
5个回答
82
投票

编辑: 这个更简单:

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

你可以使用这个公式:

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

也可以将其用作ArrayFormula:

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

这里有更多信息:


这个公式也会起到同样的作用:

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

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


6
投票

你也可以这么做

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

2
投票

也可以,也许最好是在副本上,使用“查找”:

.+/ 

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


0
投票

用“-”分割,通过公式得到excel中的最后一个元素: =修剪(右(替换(A2,"-",REPT(" ",255)),255))


-7
投票

你可以尝试使用这个!

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

String message =  "chunky/bacon/flavor";
String[] outSplited = message.split("/");

System.out.println(outSplited[outSplited.length -1]);
© www.soinside.com 2019 - 2024. All rights reserved.