- •Регулярные выражения — это шаблоны (образцы), с помощью которых проводится анализ символьных строк
- ••Регулярные выражения реализованы в большинстве языков программирования.
- •Основная операция при использовании регулярных выражений — это их сопоставление с символьными строками.
- •Механизм регулярных выражений позволяет "найти совпавший с образцом фрагмент строки, и заменить его
- •Основой механизма регулярных выражений являются шаблоны для
- •Регулярные выражения (образцы, шаблоны) составляются из обычных и/или специальных символов (метасимволов). Они формируются
- •Самый простой шаблон — это обычный конкретный одиночный символ, который сопоставляется только сам
- •Сопоставление производится с
- •Часто нужно указать, что в некоторой позиции строки может находиться любой символ.
- •Пример.
- •Примеры.
- •Классы символов
- •Перечень символов, заключенный в квадратные скобки и являющийся частью регулярного выражения, называется классом
- •[A-Ma-m] любые строчные или заглавные буквы из первой половины алфавита,
- •Помимо задания с помощью класса символов, разрешенных в данной позиции, имеется обратная возможность,
- •Регулярное выражение соответствующее Любому символу
- •Помимо обычных символов в шаблонах регулярных выражений могут использоваться специальные символы (метасимволы).
- •Использование круглых скобок
- •Найденная подстрока хранится в массиве- результате поиска или в предопределенных свойствах объекта RegExp:
- •Ссылки
- •Ссылка на предыдущее подвыражение указывает не на шаблон этого подвыражения, а на найденный
- •Экранирование
- •Основные операторы
- •Квантификация
- •Квантификатор звездочка (*), имеющий смысл "ни разу или больше". Таким образом, если нужно
- ••а) знак плюса после атома, означает "один или более раз"
- •Числовые
- •Один из аргументов может быть опущен. По умолчанию не указанные минимальное/максимальное значения трактуются
- •Пример
- •Шаблон соответствующий числу, содержащему от двух до четырех цифр
- •Число положительное или отрицательно 4 целых разряда, 2 после запятой или точки
- •Задание
- •Группы
- •Модификаторы
- •Регулярные выражения
- •Каждый объект RegExp имеет пять свойств.
- •Методы пользующиеся регулярными выражениями
- •Поиск совпадений: метод exec
- •Проверка результатов: метод test
- •replace
- •replace
- •Метод match
Примеры.
1.^abc — строка, начинающаяся с "abc".
Сравните с шаблоном abc, с которым сопоставима, например, строка aaabc.
2.abc$ — строка, заканчивающаяся на "abc".
3.Выражение /^$/ означает, что у строки есть начало, за которым сразу следует конец. Т.е. речь идет о пустой строке, не содержащей даже
пробелов.
4. Выражение /^/ означает, что у строки есть начало. Так как начало есть у всех строк, даже пустых, то под этот шаблон подпадают вообще все строки.
12
Классы символов
Простейший шаблон может состоять из последовательности конкретных символов
Чтобы в регулярном выражении определить набор (список) допустимых в данной позиции символов эти символы надо перечислить в квадратных скобках.
Например, шаблон [aeiouyAEIOUY]
означает, что в данной позиции допустимы гласные буквы обоих регистров символов.
13
Перечень символов, заключенный в квадратные скобки и являющийся частью регулярного выражения, называется классом
символов (или символьными классами). Класс символов определяет допустимые символы для текущей позиции шаблона.
14
[A-Ma-m] любые строчные или заглавные буквы из первой половины алфавита,
[0123456789] и [0-9] означают одно и то же.
[0-9\-] цифры и знак минус (дефис),
^[\-\+][0-9]\.[0-9]$ — число со знаком, одной цифрой в целой и одной в дробной части.
15
Помимо задания с помощью класса символов, разрешенных в данной позиции, имеется обратная возможность, определять класс символов, которые запрещены для данной позиции.
Описание класса недопустимых символов ("отрицание" класса) отличается тем, что
сразу после открывающей квадратной скобки
записывается ^
Примеры.
[^0-9] любой нецифровой символ,
16
Регулярное выражение соответствующее Любому символу
(не число и не буква)
Регулярное выражение для пароля
17
Помимо обычных символов в шаблонах регулярных выражений могут использоваться специальные символы (метасимволы).
Специальные символы с описаниями приведены в таблице ниже:
Специальный
символ
.
\w
\W
\d
\D
\s
\S
\n
\b
\B
Описание
Совпадает с любым символом, кроме символа конца строки.
Совпадает с любым буквенным символом. Совпадает с любым не буквенным символом.
Совпадает с символами, которые являются цифрами.
Совпадает с символами, которые не являются цифрами.
Совпадает с пробельными символами. Совпадает с не пробельными символами. Совпадает с символом перевода строки. Граница слова Не граница слова
18
Использование круглых скобок
Заключая часть шаблона регулярного выражения в круглые скобки Вы указываете выражению запомнить совпадение, найденное этой частью шаблона. Сохраненное совпадение может использоваться позднее в Вашем коде.
19
Найденная подстрока хранится в массиве- результате поиска или в предопределенных свойствах объекта RegExp: $1, ..., $9.Кроме того, скобки объединяют то, что в них находится, в единый элемент паттерна. Например, (abc)* - повторение abc 0 и более раз.
20
Ссылки
С этим связано еще одно применение подвыражений в скобках, позволяющее ссылаться на подвыражения из предыдущей части того же регулярного выражения. Это достигается путем указания одной или нескольких цифр после символа \.
21
Цифры ссылаются на позицию подвыражения в скобках внутри регулярного выражения. Например, \1 ссылается на первое подвыражение, а \3 - на третье.
Например, /apple(,)\sorange\1/ найдет 'apple, orange,' в "apple, orange, cherry, peach.".
Обратите внимание, что подвыражения могут быть вложены одно в другое, поэтому при подсчете используется позиция левой скобки.
22
