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

Для роутинга на сайте использую регулярные выражения, например ссылка на категорию "category/56", где 56 - передаваемый номер. Соответственно в настройках прописано "category/([0-9]+)" при обработке строки.

Возникла необходимость передать вместо номера слово, ссылка будет выглядеть www.test.ru/PageName, где PageName - название страницы, оно будет меняться.
По аналогии делаю '([a-z_A-Z_0-9]+)' вместо одних номеров, но проблема в том, что некоторые страницы содержат подобную ссылку и когда я перехожу на www.test.ru/admin, то роутинг срабатывает не для админки, а для новой страницы PageName.

Так вот вопрос, как из выражения '([a-z_A-Z_0-9]+)' исключить слово admin? По отдельности эти символы понятно, а вот слово целиком..
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
Может, лучше переделать систему роутинга и выдавать первое совпадение? Тогда достаточно будет просто прописать /admin первее, чем регэксп. Или вообще использовать готовую библиотеку для роутинга, благо их навалом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trevoga_su
@trevoga_su
Или создать правило для админки вида '/admin/?'
или пересмотреть "архитектуру" виртуальных адресов и исключить глобальные адреса вида /что-угодно
а делать примерно так:
/users/что-угодно
/products/что-угодно
/articles/что-угодно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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