|
|
|
| Нужно сделать рег. выражение, вытаскивающее из параметра 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
(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
|
Нужен анализ на "узкие" места - в частности, производительность.
Рег.выражение будет использоваться на больших текстах + оно содержит "заглядывания", при которых рег.выражение, при неосторожном использовании, может выполняться годами и занять кучу ресурсов... | |
|
|
|