Similar presentations:
Регулярные выражения (продолжение). Лекция 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