Разбейте строку и получите последний элемент

Допустим, у меня есть столбец, который имеет такие значения, как:

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

Т.е. переменное количество строк, разделенных /.

В другом столбце я хочу получить последний элемент из каждой из этих строк после того, как они были разделены на /. Итак, этот столбец будет иметь:

bar
flavor
bax

Я не могу понять это. Я могу разделить на / и получить массив, и я вижу функцию INDEX для получения определенного пронумерованного индексированного элемента из массива, но не могу найти способ сказать "последний элемент" в этой функции.

Ответ 1

Изменить: этот проще:

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


Вы можете использовать эту формулу:

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

А также возможно использовать его как ArrayFormula:

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

Вот еще немного информации:


Эта формула будет делать то же самое:

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

Но это занимает А1 три раза, что не является предпочтительным.

Ответ 2

Также возможно, возможно лучше на копии, с Find:

.+/ 

(Replace with пустое) и Search using regular expressions отмеченных Search using regular expressions.

Ответ 3

Вы можете попробовать использовать это!

У вас есть массив String, поэтому вы можете получить доступ к последнему элементу по длине

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

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