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

Posted

技术标签:

【中文标题】拆分字符串并获取最后一个元素【英文标题】: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 从数组中获取特定编号的索引元素,但是在这个函数中找不到说“最后一个元素”的方法。

【问题讨论】:

【参考方案1】:

编辑: 这个比较简单:

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

你可以使用这个公式:

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

也可以作为ArrayFormula使用:

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

这里有更多信息:

RegExExtract function Some good examples of syntax 我的个人list of Regex Tricks

这个公式也一样:

=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 中,问题是关于使用谷歌表格

以上是关于拆分字符串并获取最后一个元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在shell中拆分字符串并获取最后一个字段

Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类split函数基于指定分隔符拆分数据列的内容为列表设置参数n控制拆分的次数获取所有列表中最后一个位置元素内容

Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类split函数基于指定分隔符拆分数据列的内容为列表设置参数n控制拆分的次数获取所有列表中最后一个位置元素内容

Python:当字符串的 len 未知时,拆分字符串以选择最后一个元素的优雅方法 [重复]

push_back 通过自创对象获取最后一个元素的向量

拆分字符串并删除最后一个值