Вероятно, для этого вам следует использовать анализатор URL-адресов Java, но если он имеет в качестве регулярного выражения:
\b(?=/).*(?=/[^/\r\n]*)
будет соответствовать /folder1/folder22
во всех ваших примерах.
try {
Pattern regex = Pattern.compile("\\b(?=/).*(?=/[^/\r\n]*)");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
ResultString = regexMatcher.group();
}
Пояснение:
\b
: Утвердить положение на границе слова (это будет работать до одиночной косой черты, но не между косыми чертами или после :
)
(?=/)
: Утверждение, что следующий символ - косая черта.
.*
: сопоставить что угодно до ...
(?=/[^/\r\n]*)
: ... следует ровно одна последняя /
(и все остальное, кроме косой черты или перевода строки).