Прикол такой вот, как оставить последний параметр в строке до / RegExr мне показывает все гуд а по коду не гуд PHP: $link = '/ru/catalog'; $link = preg_replace('/[/].+[/]/g','',trim($link)); var_dump($link); // ответ NULL
Отдает null т.к. ошибка в шаблоне. В PHP нет модификатора /g http://php.net/manual/ru/reference.pcre.pattern.modifiers А зачем тут регулярка если хватит basename
Для PHP лучше использовать песочницу https://regex101.com/ PHP: <?php $arr = [ '/ru/abc/def', '/ru/abc', '/en/abc/def', '/en/abc', ]; $output = preg_replace('#^/[^/]+/#', '', $arr); Результат PHP: array(4) { [0]=> string(7) "abc/def" [1]=> string(3) "abc" [2]=> string(7) "abc/def" [3]=> string(3) "abc" }