PCRE-синтаксис (на базе языка Perl) .
Оба типа выполняют одни и те же функции, но имеют разный синтаксис. Подробная документация по PCRE находится по адресу: www.php.net/manual/en/ref.pcre.php ______________________________________________ 8.2. Возможности функции ereg Функция ereg проверяет строку на соответствие регулярному выражению (поиск подстроки в строковой переменной) На выходе функция ereg возвращает булево значение. Таблица
Пример использования функции ereg (с учетом регистра): $phrase = “Я программирую на РНР”; if (ereg (“PHP”, $phrase)) { echo “Выражение найдено”; } … _______________________ Пример использования функции eregi (без учета регистра): $phrase = “Я программирую на РНР”; if (eregi (“php”, $phrase)) { echo “Выражение найдено”; } … 8.2.1. Поиск набора или интервала символов Поиск фрагментов строки по заданному списку. Пример аналогичный предыдущему (поиск набора символов): $phrase = “Я программирую на РНР”; if (ereg (“ [Pp] [Hh] [Pp] ”, $phrase)) { echo “Выражение найдено”; } … Поиска интервала символов (набора букв в верхнем регистре от A до Z): $phrase = “Я программирую на РНР”; if (ereg (“ [ A-Z ] ”, $phrase)) { echo “Буквы из заданного интервала найдены”; } Поиска интервала символов (набора букв в нижнем регистре от a до z): $phrase = “Я программирую на РНР”; if (ereg (“ [ a-z ] ”, $phrase)) { echo “ … ”; } Поиска интервала символов (набора цифр от 0 до 9): if (ereg (“ [ 0-9 ] ”, $phrase)) … ______________________________________________ ___________________________________________________ С помощью символа ^ можно указать, каких символов не должно быть в искомом выражении
Пример приведенный ниже позволяет определить есть ли цифры в исходной строке: if (ereg (“ [ ^ 0-9 ] ”, $phrase)) … На выходе TRUE (истина) будет только, если в $phrase содержится как минимум один нецифровой символ. 8.2.2. Общие классы символов Наиболее характерные наборы символов, используемых для фильтрации, объединены в классы: Таблица
Правила использования классов: Класс символов вставляется в функцию с помощью конструкции [: …: ]
вставляемый класс Пример использование классов для определения присутствия цифр в строковой переменной: if (ereg (“[ [: digit: ] ] ”, $phrase)) … 8.2.3. Проверка положения искомого символа Символ ^, когда не является частью класса переменных, указывает на начало строки, а $ – на окончание. С помощью этих символов проверяется, находится ли символ, соответственно в начале или в конце переменной ($phrase) Пример: if (ereg (“ ^ [ a-z ] ”, $phrase)) … if (ereg (“ [ a-z ] $ ”, $phrase)) … Пример определения только одной цифры в строковой переменной if (ereg (“ ^[ [: digit: ] ] $ ”, $phrase)) __________________________________________________ Определение символа $ в строковой переменной: if (ereg (‘ \$ ‘, $phrase)) … if (ereg (“ \\$ ”, $phrase)) … 8.2.4. Поиск с помощью символов подстановки Символ “точка” (.) в регулярном выражении является символом подстановки и соответствует произвольному символу. Пример поиска слова из четырех букв с двумя буквами оо в средине: $word = “tool”; If (ereg (“ ^. oo. $ ”, $word)) { echo “Выражение найдено”; } … __________________________ $word = “bold”;
$word = “book”; _________________________________________________________ 8.2.5. Определение количества искомых сочетаний символов Символ (*) указывает на то, что последовательность встречается ноль или больше раз. Символ (+) указывает на то, что последовательность встречается как минимум один раз if (ereg (“^ ([ [:alpha: ] ] [ [: digit: ]]) + $ ”, $string)) … _________________________ Определение количества повторений искомого соотношения символов. В фигурных скобках указывается искомое количество повторений Пример поиска двойного повторения искомых сочетаний: if (ereg (“^ ([ [:alpha: ] ] [ [: digit: ]]) {2} $ ”, $string)) … _________________________ Пример поиска количества повторения набора символов в заданном интервале: if (ereg (“^ ([ [:alpha: ] ] [ [: digit: ]]) { 2,4 } $ ”, $string)) … __________________________ Знак (?) указывает на то, что комбинация должна встретится не более одного раза Пример поиска искомого сочетания: if (ereg (“^ ([ [:alpha: ] ] [ [: digit: ]])? $ ”, $string)) … эквивалентная запись: if (ereg (“^ ([ [:alpha: ] ] [ [: digit: ]]) { 0,1 } $ ”, $string)) … __________________________ Обработка строковых переменных с помощью регулярных выражений
Обработка строковых переменных с использованием функций
8.2.7. Разбивка строк на компоненты Выделение части выражения с помощью круглых скобок. Третий необязательный параметр ereg сохраняет все регулярные шаблоны, которые выделяются круглыми скобками в регулярном выражении.
Пример выделения частей адреса электронной почты:
$email = student@sut. ru; if (ereg (“^ ([ ^@ ] +) @ ([ a-z \- ] + \.) + ([ a-z] {2,4}) $”, $email, $match)) { echo “Почтовый ящик: ”. $match[ 1 ]. “<br>”; echo “Имя домена второго уровня:”. $match[ 2 ]. “<br>”; echo “Имя домена первого уровня:”. $match[ 3 ]. “<br>”; } Else { Электронный адрес некорректен ”; } Результат работы сценария: Почтовый ящик: student Имя домена второго уровня: sut. Имя домена первого уровня: ru Элемент – $match[ 0 ] содержит полное найденное выражение. подшаблон 1подшаблон 2подшаблон 3 ereg (“^ ([ ^@ ] +) @ ([ a-z \ – ] + \.) + ([ a-z ] {2,4}) $”, $email, $match)
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|