367.56K
Категория: ПрограммированиеПрограммирование

Регулярные выражения (продолжение). Лекция 2

1.

Лекция 2
Регулярные выражения
(продолжение)

2.

Метасимвол .
Любой символ кроме символа перевода строки (\n)
.
- один произвольный символ
(a d 4)

- слова состоящие из трех символов
(DDD map 123 )
C.T - слова, состоящие из 3 символов, первый из которых С,
последний - Т, второй - произвольный
(CAT CUT C.T)

3.

Набор символов (классы символов)
[]
Задание группы символов, которые могут находиться в
определенной позиции строки поиска
Группы символов, указанные внутри скобок, могут быть:
- перечислительными
- интервальными
- инвертированными
!!! Заключенный в [ ] знак - , приобретает специальное значение
Поставленный в начале [] символ ^ - меняет свое значение (реализует иное действие)
Все остальные метасимволы теряют свое специальное значение

4.

Набор символов (классы символов)
[]
Перечислительные группы символов
[Сc]at
- в качестве первого символа могут быть использованы
символы С или с
( cat Cat )
[2468] - четные цифры
(2 4 6 8)

5.

Набор символов (классы символов)
[]
Интервальные группы символов
[0-9]
- все цифры от 0 до 9
(0 7 9)
[1-9] [[:digit:]]
- числа от 10 до 99
( 11 99 46 )
[-+][1-9] - знаки + или - и
любая цифра от 1 до 9,
[0-9A-Za-z] - все цифры от 0 до 9
или любая буква
(7 А с)
!!! Заключенный в [ ] знак - , приобретает специальное значение

6.

Набор символов (классы символов)
[]
Инвертированные группы символов
[^0-9]
- любой символ, кроме цифр
(, k %)
[0-9^] - цифры и знак ^ (так как стоит не первым символом)
(2 4 5 ^)
^ в [] реализует иное действие ИНВЕРСИИ

7.

Символьные классы

8.

Экранирование
метасимволов
'a b'
"2*3"
3\.14

9.

Якорные метасимволы
^ поиск буквосочетаний или единичных символов,
стоящих в начале строки
$ поиск буквосочетаний или единичных символов,
стоящих в конце строки
^abс
^Start
- строки, начинающиеся с буквосочетния Start
( Start
Start and end )
end$
- строки, заканчивающиеся буквосочетнием end
( end
Start and end )

10.

Квантификаторы
- операторы, обеспечивающие возможность
специфицировать в регулярных выражениях повторение
символов или групп символов.
? + * {}

11.

Квантификатор ?
предшествующий ему символ или класс символов
может встречаться 0 или 1 раз
Abc?d
[1-9][0-9]?
- символ с может встречаться 0 или 1 раз
( Abcd Abd )
- однозначное или двузначное число
( 7 17 88 )

12.

Квантификатор *
предшествующий ему символ или класс символов
может встречаться любое количество раз
(от 0 до бесконечности)
Abc*d
- символ с может встречаться 0 и более раз
( Abd Abсd Abcccccd )
[1-9][0-9]*
- натуральное число
( 7 17 887877 900000 )

13.

Квантификатор +
предшествующий ему символ или класс символов
может встречаться 1 или более раз
Abc+d
[01]+
- символ с может встречаться 1 и более раз
( Abcd Abссссd )
- двоичное число
( 0 1111 010101 )

14.

Квантификатор { }
задает наименьшее обязательное и наибольшее возможное
число повторений символа или группы символов
символ{n,m}
n, m - целые неотрицательные числа, n <= m
Можно не указывать
[A-Z]{0,5}
[10]{5,5}
- строки из латинских букв верхнего регистра
длиной не более 5 символов
( GGGGG ABC <пустая строка> )
- пятиразрядное двоичное число
( 11111 10101 )

15.

Приоритеты.
Метасимвол ( )
предназначен для изменения приоритета операций
или ограничения их области действия
( ) имеют наивысший приоритет

16.

Когда приоритеты имеют
смысл?
a[ ]b|c[ ]d
a b
с d
a[ ](b|c)[ ]d
a b d
a с d

17.

Приоритеты
Max
Экранирование символа
\
Круглые и квадратные скобки
() []
Квантификаторы
?+*{}
Конкатенация и якорные символы
^
Объединение
|
$
Min
English     Русский Правила