Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: Sileri от 14 Апреля 2004, 16:09:07
-
Не могу понять как нужно писать регулярные выражения в PHP.
Мне нужно определить текст между тэгами заголовка
и
и вставить в документ.
-
preg_match();
-
такую задачу можно решить и без регулярных - найти позицию первого тега, второго ,и вырезать все, что между ними
-
Я просто хотела на простом примере понять как работает функция preg_match();
-
Sileri:
Я просто хотела на простом примере понять
тебе сюда:
http://detail.phpclub.net/article/regexp_1
http://detail.phpclub.net/article/regexp_2
-
Спасибо, я прочитала обе статьи.
Кое-что поняла
почему не работает следующая конструкция:
preg_match_all("/(?<=).*(?=<\\/h1>)/", $file, $matches);
Выдает пустой массив
-
переезжаем в профильный форум
-
Sileri:
Выдает пустой массив
Вся фишка тут в квантификаторе:
* подразумевает, что не требуется ни один символ, может совпасть сколько угодно символов. Механизм останавливается прямо на первом условии и не требует ни одного символа! Поставь ему вместо * плюсик + и все заработает!
preg_match_all("/(?<=\\).+(?=<\\\\/h1>\\)/", $file, $matches);
?>
Механизм совпадения увидит плюсик (должен совпасть минимум один символ), и начинает искать минимум один, а потом он становится жадным и ищет все символы.