Регулярное выражение - выделить последнюю и единственную директорию из URL

Требуется составить регулярное выражение, которое выделяло бы последнюю и единственную директорию из URL. Пример:

https://www.site.ru/dir1 или https://www.site.ru/dir1 - находит "dir1"

а

https://www.site.ru/dir1/dir2 или https://www.site.ru/dir1/dir2/dir3 и т.д. - ничего не находит.

Моя попытка: ^.+//[^/]+/([^/]+)/?$

Спасибо заранее.


Ответы (1 шт):

Автор решения: UModeL

Так как не предоставлено достаточно примеров и информации о входных данных, составил наиболее универсальное выражение - принимает как отдельные ссылки, так и находящиеся в тексте:

let rExp = /(?:^|\s)(?:\S*?\/{2})?[^\/]+?\/([^\s\/]+)(?=\/?(?:$|\s))/g;
let sTxt = `
+ https://www.site.ru/dir1 или https://www.site.ru/dir1/
+ www.site.ru/dir1 или www.site.ru/dir1/
+ ftp://site.ru/dir1
+ //site.ru/dir1

- https://www.site.ru/dir1/dir2/dir3 или https://www.site.ru/dir1/dir2/
- www.site.ru/dir1/dir2/dir3 или www.site.ru/dir1/dir2/
- ftp://site.ru/dir1/dir2
- //site.ru/dir1/dir2/dir3
`;

for (let m of sTxt.matchAll(rExp)) {
  console.log(m[1]);
}

→ Ссылка