Собственно, возникла проблема - заказчик хочет на сайте URL’ы определенного вида. Всё бы ничего - но то, что он хочет очень сильно расходится с тем, как работает сам сайт. Так вот, задание таково - нужно написать регулярку, которая бы выдавала true на всё, не включая (account|comment|user). В принципе регулярку такую я составил: /(?!(account|comment|user))/. Проблема в том, что рутинговая система накладывает свои ограничения на регулярки, а точнее приписывает к ним слева и справа свою фигню: '#^(?:\\/(<вот сюда можно вставлять всё, что угодно>))?$#'. Вопрос таков - можно ли что-то вставить в средину последней регулярки так, чтобы она вела себя как и моя, описанная выше. Если да - подскажите, что вставлять, а нет - так нет, буду через mod_rewrite решать проблему.
One Ping to “Регулярка”
4 Responses to “Регулярка”
-
1. vlarine Says:
March 21st, 2008 at 12:06Там точно такая штука: “\\/”, может просто “\/”?
Вообще-то должно работать что-то типа:
#^(?:\/(.*(account|comment|user).*))?$#
Но проверять не на true, а на false -
2. FX Poster Says:
March 21st, 2008 at 19:561. Точно.
2. Если бы я мог проверять не на true, а на false - я бы и не написал этот пост. -
3. odalex Says:
March 21st, 2008 at 21:16может стоит взять из Zend Framework их класс-разборщик URLов?
он отлично может работать без всего фреймворка..ну или посмотреть как он устроен
http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.basic
-
4. FX Poster Says:
March 22nd, 2008 at 09:46Эмм. Зачем? Я эти условия придумал не просто так - у меня есть Symfony. Нафига мне менять симфонийский рутер на зандовский? Мне просто нужна такая регулярка, которая подходила бы по условию… Пока я её не нашел, и, судя по всему, буду решать задачу по другому.
PS. Сама Symfony здесь не причем, просто заказчику уж очень нестандартный способ рутинга понадобился.





July 20th, 2008 at 01:35
[...] Переписан класс routing’а. Теперь все пути кешируются + от этого класса можно отнаследоваться и переделать, от чего бы я не отказался. [...]