| |||||||||||||||||||||||||||||||||
Атомная энергетика. Ядерные реакторы АЭС. Атомный флот. Ядерное оружие |
|||
| РБМК-1000 | |||
| Гражданский суда | |||
| Авиация | |||
Высшая математика |
|||
| Задачи | |||
| Практикум | |||
| Карта сайта | |||
Функции РНР для работы с регулярными выражениями (Perl-совместимые) |
В РНР существует пять функций поиска по шаблону с использованием Perl-совместимых регулярных выражений: preg_match( ); preg_match( ) Функция pregjnatch( ) ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис функции pregjnatch( ): int pregjnatch (string шаблон, string строка [, array совпадения}) При передаче необязательного параметра совпадения массив заполняется совпадениями различных подвыражений, входящих в основное регулярное выражение. В следующем примере функция preg_match( ) используется для проведения поиска без учета регистра: $linе = "Vi is the greatest word processor ever created!"; // Выполнить поиск слова "Vi" без учета регистра символов: if (preg_match("/\bVi\b\i", $line, $matcn)) : print "Match found!"; endif; // Команда if в этом примере возвращает TRUE preg_match_all( ) Функция preg_match_all( ) находит все совпадения шаблона в заданной строке. Синтаксис функции preg_match_all( ): Int preg_match_all (string шаблон, string строка, array совпадения [, int порядок]) Порядок сохранения в массиве совпадения текста, совпавшего с подвыражениями, определяется необязательным параметром порядок. Этот параметр может принимать два значения: PREG_PATTERN_ORDER - используется по умолчанию,
если параметр порядок не указан. Порядок, определяемый значением PREG_PATTERN_ORDER,
на первый взгляд выглядит не совсем логично: первый элемент (с индексом 0) содержит
массив совпадений для всего регулярного выражения, второй элемент (с индексом
1) содержит массив всех совпадений для первого подвыражения в круглых скобках
и т. д.; $user_info = "Name: <b>Rasmus Lerdorf</b> <br> Title: <b>PHP Guru</b>"; preg_match_all ("/<b>(.*)<\/b>/U", Suserinfo. $pat_array); print $pat_array[0][0]." <br> ".pat_array[0][l]."\n": Результат: Rasmus Lerdorf PHP Guru preg_replace( ) Функция preg_repl ace( ) работает точно так же, как и ereg_replасе( ), за одним исключением - регулярные выражения могут использоваться в обоих параметрах, шаблон и замена. Синтаксис функции preg_replace( ): mixed preg_replace (mixed шаблон, mixed замена, mixed строка [, int порог]) Необязательный параметр порог определяет максимальное количество замен в строке. Интересный факт: параметры шаблон и замена могут представлять собой масивы. Функция preg_replace( ) перебирает элементы обоих массивов и выполняет замену по мере их нахождения. preg_split( ) Функция preg_spl it( ) аналогична split( ) за одним исключением - параметр шаблон может содержать регулярное выражение. Синтаксис функции preg_split( ): array preg_split (string шаблон, string строка [, int порог [, int флаги]]) Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка. В следующем примере функция preg_split( ) используется для выборки информации из переменной. $user_info="+wj+++Gilmore+++++wjgi]more@hotmail.com +++++++Columbus+++OH"; $fields = preg_split("/\+{1.}/", $user_info); while ($x < sizeof($fields)): print $fields[$x]. "<br>"; $x++; endwhile; Результат: WJ Gilmore wjgilmore@hotmail.com Columbus OH preg_grep( ) Функция preg_grep( ) перебирает все элементы заданного массива и возвращает все элементы, в которых совпадает заданное регулярное выражение. Синтаксис функции preg_grep(): array preg_grep (string шаблон, array массив) Пример использования функции preg_grep( ) для поиска в массиве слов, начинающихся на р: $foods = array ("pasta", "steak", "fish", "potatoes"); // Поиск элементов, начинающихся с символа "р". // за которым следует один или несколько символов $p_foods = preg_grep("/p(\w+)/", $foods): $х = 0; while ($x < sizeof($p_foods)) : print $p_foods[$x]. "<br>"; $Х++; endwhile; Результат: pasta potatoes |
| На главную |