[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про регулярки
jeep456
имеется регулярка такого вида


$url="http://yandex.ru";

$pat="!<title>(.*?)</title>!";

preg_match($pat,file_get_contents($url),$mat);

echo $mat[1];



Собстенно сам вопрос - что означают восклицательные знаки в начале и в конце, и почему когда я ставлю просто слеши / / = "/<title>(.*?)</title>/" выдаётся ошибка ?
zelenin
jeep456
в начале и конце паттерна можно поставить любые символы, обычно это /? иногда используют #. В вашем случае - !
Placido
Это разделители. И в функциях preg_ они обязательны.
Цитата
При использовании любой PCRE функции необходимо заключать шаблон в разделители. Разделителем может быть любой символ не являющийся буквой, цифрой, обратной косой чертой или каким-либо пробельным символом
Lightt
jeep456
А ошибка выдается, потому что при таком виде: "/<title>(.*?)</title>/" нужно экранировать </title>
Вот так ошибка должна пропасть.

"/<title>(.*?)<\/title>/"
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.