Курс "Язык программирования PHP"
Шрифт:
– Если написать [2бул]ки], то это выражение интерпретируется как один из символов 2, б, у, л, за которым следует строка ки], потому что первая встретившаяся закрывающая квадратная скобка (разбор происходит слева направо) заканчивает определение символьного класса. То есть это РВ совпадет с одной из строк 2ки], бки], уки] или лки].
– С помощью РВ [0-9А-Яа-я] можно задать любую букву или цифру.
Метасимволы, распознаваемые вне квадратных скобок, можно разделить на группы следующим образом: определяющие положение искомого текста в строке, связанные с подвыражениями, ограничивающие символьный класс, квантификаторы и перечисление альтернатив.
Примеры (^
\
Переходный символ со множеством назначений
^
Отрицание класса, но только если это первый символ (например, «^\d» задает все, кроме цифр)
–
Задает диапазон символов (например, «0-9» задает все цифры, «A-Z» – все латинские буквы)
]
Вычисляет символьный класс
Регулярное выражение /\d\d/m может быть сопоставлено следующим подстрокам: 11, 22, 33. Если в начале РВ стоит ^, то совпадения ищутся в начале строки, поэтому выражение /^\d\d/m найдет только 11.
Когда в конце РВ стоит знак доллара $, поиск производится в конце строки, поэтому выражение /\d\d$/m найдет только 33.
Шаблону же /^\d\d\d$/ будет удовлетворять строка, целиком состоящая из трехзначного числа (т.е. она и начинается и заканчивается этим числом).
–
\
Переходный символ со множеством назначений
^
Объявляет начало объекта (или строки в многострочном режиме). То есть этот символ определяет, что искомый текст должен находиться в начале строки. Альтернатива: «\A»
$
Объявляет конец объекта (или строки в многострочном режиме). То есть этот символ определяет, что искомый текст должен находиться в конце строки. Альтернативы: «\Z», «\z»
.
Совпадает с любым символом, кроме символа перевода строки (по умолчанию)
[
Начинает определение символьного класса
]
Заканчивает определение символьного класса
|
Разделяет перечисление альтернативных вариантов
(
Начинает подшаблон регулярное (подвыражение)
)
Заканчивает
подшаблон?
Расширяет значение «(», квантификаторов 0 или 1, и квантификатор минимизации
*
0 или больше повторений (квантификатор)
+
1 или больше повторений (квантификатор)
{
Начинает минимальный/максимальный квантификатор
}
Заканчивает минимальный/максимальный квантификатор
Шаблон ограничен восклицательными знаками. Первая «^» значит, что мы ищем совпадения в начале строк, потом идет символ «<» – его и ищем в строке, после него должно идти все, что угодно, кроме обратного слэша (конструкция «[^\]» ), «+» говорит, что стоящий перед ним символ повторяется один и более раз и заканчивается все это символом «>». Таким образом, выделяются все теги в начале строк.
–
Примеры ( | и .)