Фунции Регулярних Виразів (Perl-Сумісні)

  1. Таблиця 1. PREG-константи

Синтаксис патернов, який використовується в цих функціях, дуже нагадує Perl. Вираз має бути укладена в обмежувачі, Слеш (/), наприклад. Як обмежувачі можуть використовуватися будь-які символи, крім НЕ алфавітних символів, цифр і зворотного слеша (\). Якщо символ обмежувача повинен використовуватися в самому вираженні, він повинен мнемонізіроваться / escape зворотним слешем. Починаючи з PHP 4.0.4, ви можете також використовувати парні обмежувачі в стилі Perl: (), {}, [] і <>.

Після кінцевого обмежувача можуть йти різні модифікатори, що впливають на підстановку. Див. модифікатори патерна .

PHP також підтримує регулярні вирази, що використовують розширений синтаксис POSIX з функціями POSIX-extended regex .

Підтримка регулярних виразів надається пакетом бібліотеки PCRE, який є відкритим ресурсом, автор Philip Hazel, і copyright University of Cambridge, England. Він знаходиться на ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

Починаючи з PHP 4.2.0, ці функції за замовчуванням включені. У старіших версіях ви повинні конфігурувати і компілювати PHP з опцією --with-pcre-regex [= DIR], щоб використовувати ці функції. Ви можете скасувати функції pcre опцією --without-pcre-regex.

Це розширення не визначає ніяких директив конфігурації.

Це розширення не визначає ніякі типи ресурсів.

Таблиця 1. PREG-константи
константа опис PREG_PATTERN_ORDER Оформляє результат таким чином, що $ matches [0] є масивом збігів всього патерна, $ matches [1] це масив рядків, що співпали з першим субпатерном в лапках, і так далі. Цей прапор використовується тільки з preg_match_all () . PREG_SET_ORDER Оформляє результат таким чином, що $ matches [0] це масив першого набору збігів, $ matches [1] це масив другого набору збігів, і так далі. Цей прапор використовується тільки з preg_match_all () . PREG_OFFSET_CAPTURE Див. Опис PREG_SPLIT_OFFSET_CAPTURE. Цей прапор доступний, починаючи з PHP 4.3.0. PREG_SPLIT_NO_EMPTY Цей прапор говорить функції preg_split () - повертати тільки непусті ділянки. PREG_SPLIT_DELIM_CAPTURE Цей прапор говорить функції preg_split () - захоплювати вираз в дужках також в патерне обмежувачі. Цей прапор доступний, починаючи з PHP 4.0.5. PREG_SPLIT_OFFSET_CAPTURE Якщо цей прапор встановлений, для кожного виникає збігу буде повертатися також зміщення що додається рядки. Зверніть увагу, що це змінює return-значення в масиві, де елемент є масивом, що складається з збіглася рядки зі зміщенням 0 і зміщення його рядки в суб'єкті зі зміщенням 1. Цей прапор доступний, починаючи з PHP 4.3.0, і використовується тільки для preg_split () .

Приклад 1. Приклади вірних патернов

  • / <\ / \ W +> /

  • | (\ D {3}) - \ d + | Sm

  • / ^ (? I) php [34] /

  • {^ \ S + (\ s +)? $}

Приклад 2. Приклади неправильних патернов

  • /href='(.*) '- відсутній кінцевий обмежувач

  • / \ W + \ s * \ w + / J - невідомий модифікатор 'J'

  • 1 \ d3- \ d3- \ d4 | - пропущений початковий обмежувач

зміст модифікатори Патерна - описані можливі модифікатори в regex-патернах синтаксис Патерна - описаний синтаксис PCRE regex preg_grep - повертає входження масиву, що збігаються з патерном preg_match_all - виконує глобальний пошук збігів регулярного виразу preg_match - виконує пошук збігів регулярного виразу preg_quote - закавичівает символи регулярного виразу preg_replace_callback - виконує пошук регулярного виразу і заміну з використанням зворотного виклику / callback preg_replace - виконує пошук регулярного виразу і заміну preg_split - ділить рядок регулярним виразом