..


Рекламные ссылки

PCRE функции регулярных выражений (и различия с функциями POSIX)

Статья, написанная Максом Босси
Страница 1 из 4

У нас был уже намекнул в последние дни на страницах нашего блога, но сегодня я хотел бы исследовать тему, я считаю, будет представлять интерес для тысяч разработчиков - как я - каждый день использовать PHP, чтобы развивать свои веб-приложений.

Начиная с версии 5.3 PHP, по сути, разработчиков, которые хотят использовать потенциал регулярные выражения уже не могут использовать функции POSIX (если можно так выразиться EREG () и семьи), но надо, обязательно, использование функций PCRE (Perl-совместимыми регулярными выражений), например, preg_match () .

PCRE функции встроены в PHP позволяют использовать типичный синтаксис регулярного выражения Perl (точнее, текущая реализация обеспечивает поддержку синтаксис Perl 5.005), которая немного отличается от функции POSIX. Для получения дополнительной информации о синтаксисе PCRE можно справиться руководства доступна на официальном сайте PCRE.org.

Сравнения: preg_match ()

Если вы хотите, чтобы сделать сравнение строк и шаблон (модель в виде регулярных выражений) нужно будет использовать preg_match (), которая, по сути, заменить EREG () и eregi ().

Использование preg_match () находится в общем пользовании, довольно проста: вы передаете функции шаблона и строки для проверки. Если шаблон выполнено, функция возвращает 1, если 0 (или FALSE в случае ошибки).

На самом деле перейти от EREG () не сложная вещь. Вы будете нуждаться в некоторых немного изобретательности в постановке картины.

Вот пример:

 



 <? Php







 если (preg_match ('/ mrwebmaster / я', 'Да здравствует MrWebmaster!')) {



  



 эхо "Found";







 Остальное {}



  



 эхо "не найден";







 }







 ?>

 
Это то же самое:
 



 <? Php







 если (eregi ('mrwebmaster »,« Да здравствует MrWebmaster!')) {



  



 эхо "Found";







 Остальное {}



  



 эхо "не найден";







 }







 ?>

 

В нашем простом примере использования preg_match () мы использовали строку в качестве шаблона

 



 / Mrwebmaster / с

 
Давайте посмотрим, синтаксис:
  • / ... / - Разграничивать начале и в конце свободное выражение их;
  • mrwebmaster - это простая строка, которую вы хотите проверить текст передается в качестве второго аргумента;
  • я - "я" после закрытия разделитель означает, что поиск должен быть НЕ чувствительны к регистру (так же, как это было сделано с помощью функции eregi ()). Технически это "я" является модификатор, в этой странице полный список модификаторов допускается в синтаксис PCRE.

Разница с EREG ()

Как вы можете видеть разницу с EREG () не много, давайте подведем итог их кратко:

  • Использование разделителей / ... / (на самом деле можно использовать и другие символы в качестве разделителя, но слэш обычный выбор);
  • без учета регистра версия (eregi ()) заменяется использование "я" после закрытия разделитель;
  • Присутствие символа / в структуре потребуется (если вы привыкли к черту, как разделитель) вылет (\ /), чтобы не путать с разделителями;
  • Есть некоторые незначительные различия в управлении ASCII символов (POSIX функции, в отличие от PCRE принимают числовой ASCII-символов. Например, соответствует числу 10 и 13 новых возврата каретки линии; наоборот с PCRE функциях 10 представляет исключительно число десяти).
  • Функция EREG () принимает только три параметра (рисунок, текст для проверки, и, опционально, массив для хранения результатов) и preg_match () допускает пять (два первых, мы уже видели, являются обязательными, остальные три являются обязательными );

На основании выше (и различия, которые были упомянуты), мы можем рассмотреть еще раз (частично), действительных теоретических объяснений о синтаксисе регулярных выражений можно найти на этой странице статьи "Регулярные выражения в PHP", посвященная старые функции POSIX .

В той же категории ...
E-Learning
Linux (курс) Linux (курс)
Полное руководство по открытым исходным кодом системы. От 49 €.
MySQL (курс) MySQL (курс)
Управление с открытым исходным кодом базы данных. С 39 €.
PHP (курс) PHP (курс)
Полный курс для создания динамических веб-сайтов. От 49 €.
Рекламные ссылки