- •По курсу «Интернет-программирование»
- •Принципы работы регулярных выражений
- •История развития регулярных выражений
- •Принципы регулярных выражений
- •Конструкции шаблонов регулярных выражений
- •Классы символов (диапазоны)
- •Квантификаторы (повторения)
- •Граничные метасимволы
- •Перечисления
- •Группировки
- •Утверждения
- •Условные подвыражения
- •Реализация регулярных выражений в языках программирования
- •Примеры
Квантификаторы (повторения)
Квантификаторы определяют количество повторений
Квантификаторы Таблица 3
|
Выражение |
Квантификатор |
Действие квантификатора |
|
X? |
? |
Один или ни одного |
|
X* |
* |
Ни одного, или неограниченно много |
|
X+ |
+ |
Один или много |
|
X{n} |
{n} |
n повторений |
|
X{n,} |
{n,} |
Как минимум n повторений |
|
X{,n} |
{,n} |
Не более n повторений |
|
X{n,m} |
{n,m} |
Как минимум n, но не больше m |
Примеры использования квантификаторов:
? - один или ни одного
шаблон a?
строка aa aa
Найден текст a позиция старта 0 позиция окончания 1
Найден текст a позиция старта 1 позиция окончания 2
Найден текст позиция старта 2 позиция окончания 2
Найден текст a позиция старта 3 позиция окончания 4
Найден текст a позиция старта 4 позиция окончания 5
Найден текст позиция старта 5 позиция окончания 5
+ - один или много
шаблон a+
строка aa aa
Найден текст aa позиция старта 0 позиция окончания 2
Найден текст aa позиция старта 3 позиция окончания 5
* - ноль или много
шаблон a*
строка aa aa
Найден текст aa позиция старта 0 позиция окончания 2
Найден текст позиция старта 2 позиция окончания 2
Найден текст aa позиция старта 3 позиция окончания 5
Найден текст позиция старта 5 позиция окончания 5
Граничные метасимволы
Граничные метасимволы используют для позиционирования шаблона в строке
Граничные метасимволы Таблица 4
Примеры:
|
^ |
Начало строки |
|
$ |
Конец строки |
|
\b |
Граница слова |
|
\B |
Не граница слова |
|
\G |
Предыдущий успешный поиск |
Использование метасимвола $
шаблон abc$
строка abc abc abc
Найден текст abc позиция старта 8 позиция окончания 11
Использование метасимвола ^
шаблон ^abc
строка abc abc abc
Найден текст abc позиция старта 0 позиция окончания 3
Использование метасимвола \b
шаблон abc\b
строка abc abcd abcd abc abc
Найден текст abc позиция старта 0 позиция окончания 3
Найден текст abc позиция старта 14 позиция окончания 17
Найден текст abc позиция старта 18 позиция окончания 21
Использование метасимвола \s
Введите шаблон a[^\s]+\s
Введите строку abc abc abc
Найден текст abc позиция старта 0 позиция окончания 4
Найден текст abc позиция старта 4 позиция окончания 8
Перечисления
Для определения перечислений используется вертикальная черта |, которая определяет допустимые варианты. Для включения перечисления в выражение используются группы. По действию перечисления подобны условию «или».
Примеры использования перечислений:
шаблон start|finish
строка MIET start and no finish
Найден текст start позиция старта 5 позиция окончания 10
Найден текст finish позиция старта 18 позиция окончания 24
Пример использования перечисления в группе
шаблон \d+ (бухгалте|директо)р?
строка 84991001010 бухгалтер, 84992002020 менеджер, 84993003030 директор
Найден текст 84991001010 бухгалтер позиция старта 0 позиция окончания 21
Найден текст 84993003030 директор позиция старта 45 позиция окончания 65
