Строка №1:
/string/morestring/thename
Строка №2:
/string/morestring/thename/
Regex:
[^\/]*[\/]*$
Вышеупомянутое регулярное выражение соответствует обеим последним сегментам …
Как регулярное выражение может соответствовать только последнему слову как «thename» AND «thename /», так и без окончательной косой черты?
[^\/]+\/?$
Я бы просто использовал basename()
.
Решение basename для jeroen очень хорошо, но может не работать в Windows, оно также вырезало бы расширение, если URI закончится с .something.
Я бы сделал это:
$last = array_pop(explode('/',rtrim($s,'/')));
Другой вариант:
$last = array_pop(preg_split('#/+#', rtrim($s, '/')));