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

51

假设我有一个列,其中包含以下值:

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

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

在另一列中,我想获取每个字符串在/上拆分后的最后一个元素。因此,该列将包含:

bar
flavor
bax

我无法理解这个问题。我可以按/分割并得到一个数组,我也知道可以使用函数INDEX从数组中获取特定编号的元素,但找不到一种方法来表示“最后一个元素”。

4个回答

79

编辑:这个更简单:

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

你可以使用这个公式:

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

还可以将其用作ArrayFormula:

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

以下是更多信息:


这个公式将做同样的事情:

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

但需要进行三次A1,这并不理想。


5

您也可以这样做。

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

1
相对于已被接受的答案中所概述的选项,这种方法有什么优点或权衡利弊? - Jeremy Caney
优点是它不需要理解正则表达式。我喜欢正则表达式,但并非总是如此。 - KCD

2

还有一种可能,也许在副本上使用“查找”功能最佳:

.+/ 

(替换为 空格) 并勾选 使用正则表达式搜索


-6

你可以尝试使用这个!

你已经有了字符串数组,所以可以通过长度访问最后一个元素。

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

System.out.println(outSplited[outSplited.length -1]);

6
猜测这些downvotes是因为这篇文章是关于使用谷歌表格,而提到了Java。 - Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接