Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Примеры использования функций разбора регулярных выражений

Пример:

<?php // пример регулярного выражения $pattern = "/\d-\d-\d-\d/"; $str1 = "2-2-1-3 45 999 3-7-7-3 17"; if( preg_match($pattern, $str1, $result) == 1 ) {   // выводим первую найденную подстроку   echo "Подстрока найдена!";   foreach( $result as $val )   {     // выведем единственную найденную подстроку 2-2-1-3     echo $val;   } } $cnt = preg_match_all($pattern, $str1, $result); if( $cnt > 1 ) {   // первый элемент массива $result содержит массив со   // списком подстрок   echo "Найдено {$cnt} подстрок";   foreach( $result as $val )   {     foreach( $val as $s )     {       // выводим сначала 2-2-1-3, а затем 3-7-7-3       echo $s;     }   } } ?>

Шаблоны

Регулярное выражение представляет собой строку. Регулярное выражение состоит из двух частей: непосредственно шаблона и модификатора. Шаблон и модификатор разделяются символом-разделителем (в нашем примере это символы / в начале и конце строки, модификатора нет).

Шаблон включает в себя обычные символы и «метасимволы». Метасимволы переключают состояние алгоритма сравнения. В каждом состоянии алгоритм сравнения ведет себя по-разному. В нашем примере такими метасимволами являются символы \. Когда алгоритм разбора встретил \, он просмотрел шаблон далее и обнаружил d. В данном случае это означает, что в исходной строке в текущей позиции должна находиться любая цифра.

Напомним, во избежание путаницы, что символ \ используется для задания управляющих последовательностей, например:

Escape-последовательность

 Описание

\n

Новая строка – символ 10 в ASCII.

\r

Возврат каретки – символ 13 в ASCII.

\t

Табуляция – символ 9 в ASCII.

\\

Обратная косая черта.

\$

Знак доллара.

\"

Двойная кавычка.

В качестве «метасимвола» символ \ используется для задания множеств символов, например:

 Метасимвол

 Описание

\d

Подразумевает любую десятичную цифру.

\s

Подразумевает пробел или табуляцию (пустой символ).

\w

Подразумевает любую букву, цифру или символ подчеркивания (словарный символ).

\D

Подразумевает любой символ, не являющийся десятичной цифрой.

\S

Подразумевает любой символ, не являющийся пробелом или табуляцией (не пустой символ).

\W

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

Если в регулярном выражении встречается точка ., то это означает любой символ, за исключением символа перевода строки \n. Чтобы . воспринималась просто как точка следует писать \.. По аналогии, если мы хотим, чтобы «метасимвол» воспринимался как обычный символ, то перед ним следует указать \.