^ Start of line/string
( Start capturing group
.* Match any character greedily
[\\\/] Match a backslash or a forward slash
) End the capturing group
Соответствующая косая черта будет последней из-за жадности .*.
Если ваш язык поддерживает (или требует) его, вы можете использовать другой разделитель, чем / для обычного выражения, так что вам не нужно избегать прямой косой черты.
Кроме того, если вы разбираете пути к файлам, вы, вероятно, обнаружите, что на вашем языке уже есть библиотека, которая делает это. Это было бы лучше, чем использование регулярного выражения.
Ответ 2
^(.*[\\\/])[^\\\/]*$
Ответ 3
Если вы используете sed, например, вы можете сделать это, чтобы вывести все до последней косой черты:
echo "/home/me/documents/morestuff/before_last/last" | sed s:/[^/]*$::