Similar presentations:
Регулярные выражения. Лекция 1
1.
Лекция 1Регулярные выражения
2.
Регулярные выражения (РВ)это мощное средство текстового поиска, широко используемое при работе
в операционных системах UNIX и Linux.
фактически РВ - самостоятельный язык
используется в составе различных команд Linux или
текстовых редакторах
в рамках курса используем синтаксис команды grep
3.
Дополнительнаялитература
Т.М. Волосатова, С.В. Родионов
Автоматизация проектирования лексических
анализаторов
Д. Тейнсли
Linux и UNIX: программирование в shell.
Руководство разработчика
4.
Структура регулярныхвыражений
Специальные символы
Обычные символы конечного алфавита
5.
Примеры регулярныхвыражений
^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])
(?=.*[a-z].*[a-z].*[a-z]).{8}$
^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|
30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|
[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:
1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|
(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|
1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:
(?:1[6-9]|[2-9]\d)?\d{2})$
6.
Базовые операции надрегулярными выражениями
Конкатенация
Объединение
Итерация
7.
Операция конкатенацияобеспечивает слияние символов шаблона в единую цепочку
Обозначение:
отсутствует
Действие:
cоединение
Пример:
ABC
xyz
8.
Операция объединенияобеспечивает слияние символов шаблона в единую цепочку
Обозначение:
|
Действие:
логический оператор ИЛИ
Пример:
Robert | Bob
0.5 | 0,5 | .5
9.
Операция итерацииобеспечивает повторение символа или группы символов
произвольное число раз (от нуля до бесконечности)
Обозначение:
квантификаторы * ? + {}
Действие:
повторение
Пример:
0*
2+
colou?r
1{1,5}
10.
Специальные символы(метасимволы)
- это символы, которые в составе регулярных выражений
зарезервированы и имеют специальные значения
. [ ] \ ^ $ * ( ) | + ? {}
11.
Команда grep/egrepgeneral (global) regular expression parser (print)
egrep = extended (расширенный) grep
Базовый набор метасимволов команды grep: . [] \ ^ $ *
Расширенный набор метасимволов команды egrep: + ? | () {}