sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux

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

Доброго времени суток, у меня страницы сайта доступны по регулярным выражениям которые прописаны в роутах
вот одна из них
'smartphone/(android|ios|psp|windows)/(page[0-9]+)' => 'PDAlife/platform/$1/$2',

адрес должен иметь например такой вид
/smartphone/android/page2/
как мне в этот паттерн добавить сортировку которая может и быть, а может и не быть?
что то вроде этого
'smartphone/(android|ios|psp|windows)/(new|popular)/(page[0-9]+)' => 'PDAlife/platform/$1/$2/$3',

в таком случае адрес должен иметь такой вид
/smartphone/android/popular/page2/
а вот такой адрес уже не пропустит
/smartphone/android/page2/
как сделать что бы пропустило оба адреса?
можно сделать два отдельных роута, но если я так буду делать для всех страниц на сайте то будет не очень хорошо...
Проверка выглядит так:
if (preg_match("~^$uriPattern$~", $this->getURI()))

где getURI
private function getURI()
    {
        if (!empty($_SERVER['REQUEST_URI'])) {
            return trim($_SERVER['REQUEST_URI'], '/');
        }
    }
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
sanek_os9
@sanek_os9 Автор вопроса
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
smartphone/(android|ios|psp|windows)/(new|popular)/?(page[0-9]+)?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
twobomb
@twobomb
Вот так ?
smartphone/(android|ios|psp|windows)/(new|popular)?/?(page[0-9]+)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы