| |
|
|
| | Здравствуйте!
Как в .htaccess прописать отрицание не символа, а слова? | |
| |
|
|
| |
|
|
| |
для: vadimka
(03.10.2011 в 13:37)
| | | Обычно для этого используют опережающие и ретроспективные проверки (не уверен, правда что диалект регулярных выражений, реализованных в mod_rewrite их поддерживает), т.е. можно указать, что слова может не быть слева или справа от другого символа. | |
| |
|
|
| |
|
|
| |
для: cheops
(03.10.2011 в 13:47)
| | | Вот точно не долно быть слова cat
^([^cat][a-zA-Z-]+)/([a-zA-Z-]+)/?$
|
| |
| |
|
|
| |
|
|
| |
для: vadimka
(03.10.2011 в 14:06)
| | | Тогда опережающая проверка должна выглядеть следующим образом
^([a-zA-Z]{3}(?<!cat)[a-zA-Z-]*)/([a-zA-Z-]+)/?$
| Правда тут первые три символа вводятся явно... сколько вообще символов будет до / и после / ? | |
| |
|
|
| |
|
|
| |
для: cheops
(03.10.2011 в 14:25)
| | | неизвестно, данные динамические из базы
^([a-z]{3}(?<!cat)[a-zA-Z-]*)/([a-zA-Z-]+)/?$
|
не могли бы Вы объяснить ?<!
я спрашиваю потому что подумал - это ошибка, но без нее условие, когда cat/ присутствовал, не срабатывало.... | |
| |
|
|
| |
|
|
| |
для: vadimka
(03.10.2011 в 15:08)
| | | >не могли бы Вы объяснить ?<!
Это единая последовательность, которая используется в скобках, чтобы задать отношение "не может быть расположено слева", которое называют опережающей негативной проверкой. | |
| |
|
|
| |
|
|
| |
для: cheops
(03.10.2011 в 15:51)
| | | >в скобках
в круглых (и только) | |
| |
|
|
| |
|
|
| |
для: cheops
(03.10.2011 в 15:51)
| | | Всем спасибо! | |
| |
|
|
| |
|
|
| |
для: cheops
(03.10.2011 в 14:25)
| | | >
^([a-zA-Z]{3}(?<!cat)[a-zA-Z-]*)/([a-zA-Z-]+)/?$
|
а зачем так запутано?
помоему вот этого будет достаточно
^((?!cat)[a-zA-Z-]*)/([a-zA-Z-]+)/?$
|
и выглядит логичней.
и сюдя с документации mod_rewrite поддерживает движок pcre, отсюда и все плюшки ;) | |
| |
|
|