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

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

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

 

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

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

тема: Разрешить расширения и папки
 
 автор: ddhvvn   (25.02.2009 в 11:51)   письмо автору
 
 

Нужно сделать рег. выражение, вытаскивающее из параметра src или href путь к файлу с расширением .php или .html или вообще не содержащие расширение, т.е. путь к папке.

src="index.php" // вытаскиваем index.php
src="/index/" //  вытаскиваем/index/
src="index.txt" // пропускаем, тут ничего не нужно

Пробовал много вариантов, прикрепляю наиболее верный по-моему )
#(src|href)="(.*?(?<=\.)(php|html))"#i

Этот вариант пропускает index.php, не пропускает index.txt, но и НЕ пропускает index, но надо )
Тестовый скрипт )
<?php
    $text 
'Это src="index.txt" тест';

    
preg_match('#(src|href)="(.*?(?<=\.)(php|html))"#i'$text$buf);

    echo 
"<pre>";
    
print_r($buf);
    echo 
"</pre>";

?>

  Ответить  
 
 автор: ddhvvn   (02.03.2009 в 15:00)   письмо автору
 
   для: ddhvvn   (25.02.2009 в 11:51)
 

Хмм.... что скажете насчет этой абракадабры?

#(src|href)="((?(?=[a-z0-9%_/.-]*\.[a-z]{2,6}(\?.*)?).*?\.(php|html)(\?[a-z0-9_%&=-]*)?|[a-z0-9%_/.-]*(\?[a-z0-9_%&=-]*)?))"#i


Нужен анализ на "узкие" места - в частности, производительность.
Рег.выражение будет использоваться на больших текстах + оно содержит "заглядывания", при которых рег.выражение, при неосторожном использовании, может выполняться годами и занять кучу ресурсов...

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

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