[Image] Четверг, 19.12.2024, 03:16 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
 Блог
Главная » 2010 » Декабрь » 22 » Модификаторы PCRE
16:58
Модификаторы PCRE

Ранее говорилось, что вам нужно указывать разделители для PCRE. Если это вызывает удивление, то вот объяснение: в PCRE введена концепция "модификаторов", которые могут быть добавлены к регулярному выражению для изменения поведения компилятора и/или интерпретатора регулярных выражений. Модификатор всегда добавляется в конец выражения, сразу после разделителя. Например, в следующем регулярном выражении:

/test/i
последнее i — это модификатор.
Существует множество различных модификаторов. Вероятно, наиболее часто ис-
пользуемым является i, который заставляет обрабатывать регулярное выражение не-
зависимо от регистра. Рассмотрим пример, как это работает.
$s = 'Сегодня отличный день';
echo (pregjnatch ('/ОТличНый/i', $s) ? 'СОВПАДАЕТ' : 'НЕ СОВПАДАЕТ') . "\п";
?>

Если выполнить этот сценарий, то он выведет слово СОВПАДАЕТ, означающее, что сравнение прошло успешно, так как модификатор i инициирует сравнение без учета регистра.
Другой часто используемый и чрезвычайно мощный модификатор — это е, который, будучи примененным в сочетании с i, вынуждает компилятор регулярных выражений интерпретировать параметр replacement не как простую строку, а как РНР-выражение, которое выполняется и его результат используется в качестве строки замены.
Ниже показан пример, который демонстрирует, насколько мощный этот модификатор.

$a = array
(
'name' => 'Торонто',
'object'=> 'город'
);
$s • '{name} действительно замечательный {object}';
echo preg_replace ('/{ (\w+)}/e', ' $ a [ " \ l " ] ' , $s) ;
?>

Когда вы запускаете этот сценарий, функция preg_replace () находит все экземпляры буквенно-цифровых строк, ограниченных { и }, заменяет ссылку, созданную в $а["\1"], вычисляет результирующее PHP-выражение и заменяет его значение в исходной строке.
Разберем пример шаг за шагом. Первое совпадение в регулярном выражении будет подстрокой name, которая затем помещается в строку замены, создавая таким образом PHP-выражение $a["name"]. Позднее, при выполнении, возвращается значение
Торонто, которое подставляется внутри исходной строки. Тот же процесс повторяется для второго совпадения object, и возвращается финальный результат:
Торонто действительно замечательный город
Представьте, насколько сложнее было бы сделать что-то подобное без регулярных выражений и модификатора е!


Категория: Все о PHP | Просмотров: 1204 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [592]
Создание сайтов [355]
Заработать в интернете [508]
Технологии [48]
Полезное [392]
Услуги и сервисы [317]
Автоблог [105]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 3
Гостей: 3
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru