Я пытаюсь сопоставить свое приложение uri с набором маршрутов, и для маршрута по умолчанию я думал о разрешении bb.com/home
или bb.com/
(пусто), чтобы быть разрешенными параметрами на первом сегменте uri , и то же самое для второго. Я не уверен, как я проверяю для пустых значений является лучшим:PHP PCRE - матч «ничего»
#^/?(?P<controller>([.*]{0}|home))(?:/(?P<action>([.*]{0}|test)))?/?$#uD
Обратите внимание на[.*]{0}
Есть ли лучший способ сделать это?
Вы могли бы сделать это ленивым: '. *?', Который ни в коем случае не должен ничего сопоставлять. –
Это сработало и короче моего подхода. – yoda
Кроме того, вам не нужно иметь так много групп захвата. У вас даже есть группа захваченных номеров в названной группе захвата. Вот как я напишу выражения: '^ /? (? P. *? | Home)/(? P . *?) /? $' –