[регулярные выражения] не могу разобраться с утверждениями
For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo".но это не важно.
В твоём коде надо убрать крышку или занести её в assertion
<?
preg_match("/(?<=foo)bar$/", "foobar", $matches);
print_r($matches);
?>
или
<?
preg_match("/(?<=^foo)bar$/", "foobar", $matches);
print_r($matches);
?>
т.к. иначе ты ищешь текст bar который находится в начале строки, но при этом перед ним должен стоять текст foo.
An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters.
спасибо нельзя все-таки такие маны по-диагонали читать...
хм. с этим вроде разобрались, только легче от этого стало не намного. Мне нужно настроить шаблона так, чтобы mod_rewrite перенаправлял все файлы в папку modules. Т.е. для того, чтобы не было зацикливания, нужно, чтобы урлы, которые начинаются с modules/ не обрабатывались вообще. как?
RewriteCond %{REQUEST_URI} !^/modules/
RewriteRule …
Прочитай уже мануал по mod_rewrite и примеры применения.
Оставить комментарий
oleg1331
пример из руководства http://ru2.php.net/manual/ru/reference.pcre.pattern.syntax.p...не найдёт вхождения "bar", которым не предшествует "foo".
тем не менее, когда я запускаю
у меня выводится пустой массив. Где меня глючит?