Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по исключающему выражению
 
 автор: 1999   (18.11.2009 в 23:08)   письмо автору
 
 

Пишу location для конфигурации nginx
Нужно, чтобы все URL-адреса, которые начинаются с /js, /css и /pic и НЕ заканчиваются на .php - (тут куда должно идти)

^/(js|pic|css)/.+\.[^(php)]$

но почему-то не работает... точно знаю, что ошибка в конце, но где?..

  Ответить  
 
 автор: Fractured#   (19.11.2009 в 01:26)   письмо автору
 
   для: 1999   (18.11.2009 в 23:08)
 

<?php
if( preg_match('#^/(js|pic|css).+(?<!\\.php)$#'$s) )
{
    
// OK
}
?>

  Ответить  
 
 автор: 1999   (19.11.2009 в 02:42)   письмо автору
 
   для: Fractured#   (19.11.2009 в 01:26)
 

Мда, все оказалось проще)

^/(js|pic|css)/.+(?<!\.php)$
^/(js|pic|css)/.+$(?<!\.php)


обе регулярки работают
долго дискутировали в webdev@conference,jabber.ru
по идее первая должна была быть медленней, поскольку вторая после первых символов сразу идет в конец и там делает негативный просмотр

даже сделал мини-бенч
http://gist.github.com/238338

но бенч выдавал только то, что разница небольшая.....
вот такие дела

  Ответить  
 
 автор: Fractured#   (19.11.2009 в 07:06)   письмо автору
 
   для: 1999   (19.11.2009 в 02:42)
 

[поправлено модератором]

  Ответить  
 
 автор: 1999   (19.11.2009 в 10:22)   письмо автору
 
   для: Fractured#   (19.11.2009 в 07:06)
 

вы не нервничайте
и вместе мы не пили, чтоб меня на ты называть

в этих директориях у меня максимальный путь который будет - '/js/fckeditor/connectors/php/connector.php'
прогнал 5 раз по миллиону итераций - разница в 0.40%, притом это значение еще надо уменьшить в миллион раз (итераций миллион было)
так что разница действительно небольшая

обновленный бенч сунул туда же
http://gist.github.com/238338

  Ответить  
 
 автор: 1999   (19.11.2009 в 16:17)   письмо автору
 
   для: 1999   (19.11.2009 в 10:22)
 

подсказали третья регулярку. победителя)
вот собственно и все результаты

http://www.staypositive.ru/blog/2009/11/19/regular-fuckin

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования