| PHP и регулярные выражения |
|
|
| Автор Westry | |
| 23.03.2008 г. | |
|
Прежде всего, напомню, что регулярные выражения представляют собой обычные текстовые строки, которые используются как шаблоны для анализа текста. Эти строки составляются по специальным правилам, позволяющим описать практически любую последовательность символов.
В состав PHP входит три набора функций для работы с регулярными выражениями. К первому набору относятся функции, названия которых начинаются с ereg. Эти функции работают с регулярными выражениями стандарта POSIX. Второй набор функций, по сути, является расширением первого, и допускает использование в регулярных выражениях многобайтных символов (Unicode). Эти функции начинаются с mb_. Третий набор функций (PCRE библиотека) работает с PERL-совместимыми регулярными выражениями. Названия этих функций начинаются с приставки preg. Этот набор функций обеспечивает большую функциональность и быстродействие, поэтому рассказывать я буду именно о нем. На правилах составления самих регулярных выражений останавливаться нет смысла. Даже их краткое описание займёт несколько десятков страниц. Поэтому перейдём к рассмотрению библиотеки. Она включает семь функций, которые позволяют выполнять поиск, замену и разбивку текста с помощью регулярных выражений. Для поиска в тексте используются функции: preg_grep() preg_match_all() preg_match() Разница между ними заключается в количестве передаваемых параметров и возвращаемых значений. Например, preg_match() прекращает работу после первого найденного совпадения, а preg_match_all() – после того, как будут найдены все совпадения. Замену текста можно выполнить с помощью функций: preg_replace_callback() preg_replace() Как несложно догадаться, preg_replace_callback() позволяет указать специальную функцию, которая будет использована для замены найденных совпадений. preg_replace() – просто заменяет найденные совпадения на заданную строку. Функция preg_split() разбивает текст по заданному регулярному выражению. Остальные функции носят вспомогательный характер. preg_last_error() – возвращает код последней ошибки, возникшей при работе библиотеки. preg_quote() – экранирует символы в регулярном выражении, т.е. перед каждым служебным символом вставляет обратный слеш. Теперь рассмотрим небольшой пример. Допустим, есть список eMail адресов, разделенных запятыми или пробелами, по которому нам требуется создать список имен пользователей. Решить эту задачу можно следующим образом: $text = "
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
,
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
,
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
"; $pattern = "/[,|\s]?(\S+)@/"; preg_match_all($pattern, $text, $res); foreach ($res[1] as $name) { echo "<p>".$name."</p>"; }
Автор: Стаценко Владимир |
| « Пред. | След. » |
|---|


