У меня есть следующее регулярное выражение:
^(?:([a-z]{2})\/)?.*?(?:\/?([\w\-]+))$
, что в основном означает, что я хочу получить двухбуквенный код языка и последнюю строку после косой черты.
Используется ответ отдругой вопрос.Я не мог вернуть совпадения в обратном порядке, поэтому установил последний.
К сожалению, мой сервер возвращает 500 Внутренняя ошибка сервера .Я проверил это, и похоже, что ему не нравится звезда * в середине регулярного выражения.
Также не нравится .+
, если я вставлю его вместо .*
Ниже приведены примеры URL:
page
page/page1
page/page2/page3
en
en/page
en/page/page2
en/page/page2/page3
Я бы хотел, чтобы совпадения были:
page
page1
page3
en
en & page
en & page2
en & page3
Я не понимаю, почему * или + приводят к сбою сервера.Я не смог найти никаких деталей, поэтому надеюсь, что кто-нибудь сможет пролить свет.
Ссылка на Regex101: https://regex101.com/r/hW9eZ4/10