@ymfront

Как написать регулярное выражение для извлечения подстроки из строки?

Есть несколько разных строк:

http://dtarchive/directory/ag/book
http://dtarchive/main/child/directory/en/paper/
http://dtarchive/sidir/sichild/path/si/mag
http://dtarchive/lkdir/lkchild/path/lk/mz/


Из строки нужно извлечь последнюю папку, которая для всех строк разная. Как правильно написать одно регулярное выражение для получения этой папки? Т.е. нужно получить book, paper, mag, mz. Проблема в том, что какие-то строки заканчиваются слешем, какие-то нет, и нужно написать универсальное общее регулярное выражение. Дя строк без слеша на конце подходит [^/]*$

Также для каждой строки нужно обрезать 2 последние директории.
Например, для строки http://dtarchive/directory/ag/book нужно оставить http://dtarchive/directory/, для строки http://dtarchive/lkdir/lkchild/path/lk/mz/ нужно оставить http://dtarchive/lkdir/lkchild/path/

Как для этого правильно прописать регулярное выражение?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Регулярные выражения
[^\/]+(?=\/?$)

.*(?=(?:\/[^\/]+){2}\/?$)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы