🗊 Презентация Регулярные выражения

Категория: Математика
Нажмите для полного просмотра!
Регулярные выражения, слайд №1 Регулярные выражения, слайд №2 Регулярные выражения, слайд №3 Регулярные выражения, слайд №4 Регулярные выражения, слайд №5 Регулярные выражения, слайд №6 Регулярные выражения, слайд №7 Регулярные выражения, слайд №8 Регулярные выражения, слайд №9 Регулярные выражения, слайд №10 Регулярные выражения, слайд №11 Регулярные выражения, слайд №12 Регулярные выражения, слайд №13 Регулярные выражения, слайд №14 Регулярные выражения, слайд №15 Регулярные выражения, слайд №16 Регулярные выражения, слайд №17 Регулярные выражения, слайд №18 Регулярные выражения, слайд №19 Регулярные выражения, слайд №20 Регулярные выражения, слайд №21 Регулярные выражения, слайд №22 Регулярные выражения, слайд №23 Регулярные выражения, слайд №24 Регулярные выражения, слайд №25 Регулярные выражения, слайд №26 Регулярные выражения, слайд №27 Регулярные выражения, слайд №28 Регулярные выражения, слайд №29 Регулярные выражения, слайд №30 Регулярные выражения, слайд №31 Регулярные выражения, слайд №32 Регулярные выражения, слайд №33 Регулярные выражения, слайд №34

Содержание

Вы можете ознакомиться и скачать презентацию на тему Регулярные выражения. Доклад-сообщение содержит 34 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Регулярные выражения
Описание слайда:
Регулярные выражения

Слайд 2


Основные определения Регулярные выражения в алфавите Σ и регулярные множества, которые они обозначают, определяются рекурсивно следующим образом: 1)...
Описание слайда:
Основные определения Регулярные выражения в алфавите Σ и регулярные множества, которые они обозначают, определяются рекурсивно следующим образом: 1)  – регулярное выражение, обозначающее регулярное множество ; 2) e – регулярное выражение, обозначающее регулярное множество {e}; 3) если aΣ, то a – регулярное выражение, обозначающее регулярное множество {a}; 4) если p и q – регулярные выражения, обозначающие регулярные множества P и Q, то а) (p+q) – регулярное выражение, обозначающее PQ; б) pq – регулярное выражение, обозначающее PQ; в) p* – регулярное выражение, обозначающее P*; 5) ничто другое не является регулярным выражением.

Слайд 3


Основные определения Расстановка приоритетов: * (итерация) – наивысший приоритет; конкатенация; + (объединение). Таким образом, 0 + 10* = (0 + (1...
Описание слайда:
Основные определения Расстановка приоритетов: * (итерация) – наивысший приоритет; конкатенация; + (объединение). Таким образом, 0 + 10* = (0 + (1 (0*))). Примеры: 1. 01 означает {01}; 2. 0* – {0*}; 3. (0+1)* – {0, 1}*; 4. (0+1)* 011 – означает множество всех цепочек, составленных из 0 и 1 и оканчивающихся цепочкой 011; 5. (a+b) (a+b+0+1)* означает множество всех цепочек {0, 1, a, b}*, начинающихся с a или b.

Слайд 4


Основные определения Леммы: 1) α + β = β + α 2) * = e 3) α + (β + γ) = (α + β) + γ 4) α(βγ) = (αβ)γ 5) α(β + γ) = αβ + αγ 6) (α + β)γ = αγ + βγ 7)...
Описание слайда:
Основные определения Леммы: 1) α + β = β + α 2) * = e 3) α + (β + γ) = (α + β) + γ 4) α(βγ) = (αβ)γ 5) α(β + γ) = αβ + αγ 6) (α + β)γ = αγ + βγ 7) αe = eα = α 8) α = α =  9) α+α* = α* 10) (α*)* = α* 11) α+α = α 12) α+ = α

Слайд 5


Связь РВ и РМ РМ – языки, порождаемые РВ. Например: x = a+b, y = c+d, x  X = {a, b}, y  Y = {c, d}, x + y  XY = {a, b, c, d}. Конкатенация: xy ...
Описание слайда:
Связь РВ и РМ РМ – языки, порождаемые РВ. Например: x = a+b, y = c+d, x  X = {a, b}, y  Y = {c, d}, x + y  XY = {a, b, c, d}. Конкатенация: xy  XY = {ac, ad, bc, bd}. к(и+о)т  {к}{и, о}{т} = {кит, кот} или по леммам №5 и №6 к(и+о)т = кит + кот  {кит, кот}. Итерация: x = a, x*  X* = {e, a, aa, aaa, …}, т.е. x* = e + x + xx + xxx + …

Слайд 6


Связь РВ и РМ Итерация конкатенации и объединения: (xy)* = e + xy + xyxy + xyxyxy + … (x + y)* = e + (x + y) + (x + y)(x + y) + (x + y)(x + y)(x + y)...
Описание слайда:
Связь РВ и РМ Итерация конкатенации и объединения: (xy)* = e + xy + xyxy + xyxyxy + … (x + y)* = e + (x + y) + (x + y)(x + y) + (x + y)(x + y)(x + y) + … = = e + x + xx + xy + yx + yy + xxx + … Пример: 0 + 1(0+1)*  {0}({1}{0, 1}*) = {0, 1, 10, 11, 100, 101, 110, 111…}. Объединение коммутативно: x + y = y + x Конкатенация – нет: xy ≠ yx

Слайд 7


Связь РВ и РМ Примеры на приоритет: x + yz  {x, yz}, (x + y)z  {xz, yz}, x + y*  {e, x, y, yy, yyy, yyyy, …}, (x + y)*  {e, x, y, xx, xy, yx, yy,...
Описание слайда:
Связь РВ и РМ Примеры на приоритет: x + yz  {x, yz}, (x + y)z  {xz, yz}, x + y*  {e, x, y, yy, yyy, yyyy, …}, (x + y)*  {e, x, y, xx, xy, yx, yy, xxx, …}, (xy)*  {e, xy, xyxy, …}, xy*  {x, xy, xyy, xyyy, …}. Новые леммы: a* + e = a*; (a + e)* = a*; a*a* = a*; e* = e; и т.д.

Слайд 8


Регулярные системы уравнений Уравнение с регулярными коэффициентами X = aX + b имеет решение (наименьшую неподвижную точку) a*b: aa*b + b = (aa* +...
Описание слайда:
Регулярные системы уравнений Уравнение с регулярными коэффициентами X = aX + b имеет решение (наименьшую неподвижную точку) a*b: aa*b + b = (aa* + e)b = a*b Система уравнений с регулярными коэффициентами: X1 = α10 + α11X1 + α12X2 + … + α1nXn X2 = α20 + α21X1 + α22X2 + … + α2nXn ………………………………………………….. Xn = αn0 + αn1X1 + αn2X2 + … + αnnXn Неизвестные – Δ = {X1, X2, …, Xn}.

Слайд 9


Регулярные системы уравнений Алгоритм решения (метод Гаусса): Шаг 1. Положить i = 1. Шаг 2. Если i = n, перейти к шагу 4. Иначе записать уравнения...
Описание слайда:
Регулярные системы уравнений Алгоритм решения (метод Гаусса): Шаг 1. Положить i = 1. Шаг 2. Если i = n, перейти к шагу 4. Иначе записать уравнения для Xi в виде Xi = αXi + β (β = β0 + βi+1Xi+1 + … + βnXn). Затем в правых частях для уравнений Xi+1, …, Xn заменим Xi регулярным выражением α*β. Шаг 3. Увеличить i на 1 и вернуться к шагу 2. Шаг 4. Записать уравнение для Xn в виде Xn = αXn + β. Перейти к шагу 5 (при этом i = n). Шаг 5. Уравнение для Xi имеет вид Xi = αXi + β. Записать на выходе Xi = α*β, в уравнениях для Xi–1, …, X1 подставляя α*β вместо Xi. Шаг 6. Если i = 1, остановиться, в противном случае уменьшить i на 1 и вернуться к шагу 5.

Слайд 10


Преобразование ДКА в РВ Для ДКА M = (Q, Σ, δ, q0, F) составим систему с регулярными коэффициентами где Δ = Q: 1. полагаем αij := ; 2. если δ(Xi, a)...
Описание слайда:
Преобразование ДКА в РВ Для ДКА M = (Q, Σ, δ, q0, F) составим систему с регулярными коэффициентами где Δ = Q: 1. полагаем αij := ; 2. если δ(Xi, a) = Xj, aΣ, то αij := αij + a; 3. если XiF или δ(Xi, ) = HALT, то αi0 := e. После решения искомое РВ будет X1 = q0.

Слайд 11


Преобразование ДКА в РВ Пример: для числа с фиксированной точкой получим систему q0 =  + q0 + sq1 + pq2 + dq3 + q4 q1 =  + q0 + q1 + pq2 + dq3...
Описание слайда:
Преобразование ДКА в РВ Пример: для числа с фиксированной точкой получим систему q0 =  + q0 + sq1 + pq2 + dq3 + q4 q1 =  + q0 + q1 + pq2 + dq3 + q4 q2 =  + q0 + q1 + q2 + q3 + dq4 q3 = e + q0 + q1 + q2 + dq3 + pq4 q4 = e + q0 + q1 + q2 + q3 + dq4 Здесь: s – знак числа, s = '+' + '–'; p – десятичная точка, p = '.'; d – цифры, d = '0' + '1' + … + '9'.

Слайд 12


Преобразование ДКА в РВ Решение: q0 = *(sq1 + pq2 + dq3 + q4 + ) = sq1 + pq2 + dq3  q1 =  + q0 + q1 + pq2 + dq3 + q4 = pq2 + dq3, q2 =  +...
Описание слайда:
Преобразование ДКА в РВ Решение: q0 = *(sq1 + pq2 + dq3 + q4 + ) = sq1 + pq2 + dq3  q1 =  + q0 + q1 + pq2 + dq3 + q4 = pq2 + dq3, q2 =  + q0 + q1 + q2 + q3 + dq4 = dq4, q3 = e + q0 + q1 + q2 + dq3 + pq4 = dq3 + pq4 + e, q4 = e + q0 + q1 + q2 + q3 + dq4 = dq4 + e. Из третьего уравнения: q3 = dq3 + pq4 + e = d*(pq4 + e). Из четвертого уравнения: q4 = dq4 + e = d*e = d*.

Слайд 13


Преобразование ДКА в РВ Обратный ход: q3 = d*(pq4 + e) = d*(pd* + e), q2 = dq4 = dd*, q1 = pq2 + dq3 = pdd* + dd*(pd* + e), q0 = sq1 + pq2 + dq3 =...
Описание слайда:
Преобразование ДКА в РВ Обратный ход: q3 = d*(pq4 + e) = d*(pd* + e), q2 = dq4 = dd*, q1 = pq2 + dq3 = pdd* + dd*(pd* + e), q0 = sq1 + pq2 + dq3 = s(pdd* + dd*(pd* + e)) + pdd* + dd*(pd* + e). Таким образом, данному ДКА соответствует РВ s(pdd* + dd*(pd* + e)) + pdd* + dd*(pd* + e). Упростим: s(pdd* + dd*(pd* + e)) + pdd* + dd*(pd* + e) = = spdd* + sdd*(pd* + e) + pdd* + dd*(pd* + e) = (s + e)(pdd* + dd*(pd* + e)) Для более короткой записи можно использовать положительную итерацию aa* = a*a = a+: (s + e)(pdd* + dd*(pd* + e)) = (s + e)(pd+ + d+(pd* + e)) = (s + e)(pd+ + d+pd* + d+)

Слайд 14


Преобразование ДКА в РВ Сопоставление графа функции переходов ДКА основным операциям с регулярными выражениями:
Описание слайда:
Преобразование ДКА в РВ Сопоставление графа функции переходов ДКА основным операциям с регулярными выражениями:

Слайд 15


Преобразование ДКА в РВ Более сложные комбинации операций:
Описание слайда:
Преобразование ДКА в РВ Более сложные комбинации операций:

Слайд 16


Преобразование ДКА в РВ Для РВ (s + e)(pd+ + d+(pd* + e)):
Описание слайда:
Преобразование ДКА в РВ Для РВ (s + e)(pd+ + d+(pd* + e)):

Слайд 17


Программирование РВ Регулярные выражения: Встроены во многие языки программирования (PHP, JavaScript, …); Реализованы в виде подключаемых компонентов...
Описание слайда:
Программирование РВ Регулярные выражения: Встроены во многие языки программирования (PHP, JavaScript, …); Реализованы в виде подключаемых компонентов (например, класс Regex для платформы .NET). Отличия в формах записи: x? = x + e x{1,3} = x + xx + xxx и т.д.

Слайд 18


Программирование РВ Конструкции класса Regex (System.Text.RegularExpressions):
Описание слайда:
Программирование РВ Конструкции класса Regex (System.Text.RegularExpressions):

Слайд 19


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 20


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 21


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 22


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 23


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 24


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 25


Программирование РВ
Описание слайда:
Программирование РВ

Слайд 26


Программирование РВ Результаты работы Regex:
Описание слайда:
Программирование РВ Результаты работы Regex:

Слайд 27


Программирование РВ Пример на языке C#:
Описание слайда:
Программирование РВ Пример на языке C#:

Слайд 28


Программирование РВ Пример на языке C++ CLI (Visual C++/CLR/Консольное приложение CLR): System::Text::RegularExpressions
Описание слайда:
Программирование РВ Пример на языке C++ CLI (Visual C++/CLR/Консольное приложение CLR): System::Text::RegularExpressions

Слайд 29


Включение действий и поиск ошибок Ограничение количества значащих цифр в числе: (s + e)(pd+ + d+(pd* + e)) s = \+|- p = \. d = \d s + e = s? =...
Описание слайда:
Включение действий и поиск ошибок Ограничение количества значащих цифр в числе: (s + e)(pd+ + d+(pd* + e)) s = \+|- p = \. d = \d s + e = s? = (\+|-)? pd* + e = (pd*)? = (\.\d*)? @"(\+|-)?(\.\d+|\d+(\.\d*)?)" или @"^(\+|-)?(\.\d+|\d+(\.\d*)?)$"

Слайд 30


Включение действий и поиск ошибок Определение позиции ошибки: «+1.2345!678» – ошибка в позиции 8; «!1.2345678» – ошибка в позиции 1
Описание слайда:
Включение действий и поиск ошибок Определение позиции ошибки: «+1.2345!678» – ошибка в позиции 8; «!1.2345678» – ошибка в позиции 1

Слайд 31


Включение действий и поиск ошибок Определение позиции ошибки: 1. первая позиция входной цепочки (1), если первое соответствие не начинается с позиции...
Описание слайда:
Включение действий и поиск ошибок Определение позиции ошибки: 1. первая позиция входной цепочки (1), если первое соответствие не начинается с позиции Index = 0; 2. позиция, следующая за последним соответствием (match.Length + 1), если она не совпадает с последней позицией входной цепочки; 3. позиция первого разрыва между соответствиями (match[i].Index + match[i]. Length + 1), если символ, следующий за предыдущим соответствием, не является первым символом следующего соответствия.

Слайд 32


Включение действий и поиск ошибок «abc.xyz.pqr» – правильно; «+abc.xyz.pqr» – ошибка в позиции 1 («+»); «abc.xyz.pqr!» – ошибка в позиции 12 («!»);...
Описание слайда:
Включение действий и поиск ошибок «abc.xyz.pqr» – правильно; «+abc.xyz.pqr» – ошибка в позиции 1 («+»); «abc.xyz.pqr!» – ошибка в позиции 12 («!»); «abc.xyz!.pqr» – ошибка в позиции 8 («!»).

Слайд 33


Включение действий и поиск ошибок Но! «abc.xyz.+pqr» – ошибка в позиции 8 («.»). Новый вариант шаблона: @"\w+(\.\w+)*(\.(?!$))?" Проверка:...
Описание слайда:
Включение действий и поиск ошибок Но! «abc.xyz.+pqr» – ошибка в позиции 8 («.»). Новый вариант шаблона: @"\w+(\.\w+)*(\.(?!$))?" Проверка: «abc.xyz.+pqr» – ошибка в позиции 9 («+»); «abc.xyz.pqr.» – ошибка в позиции 12 («.»).

Слайд 34


Сбалансированные определения Сбалансированные определения: «(?'x')» добавляет в коллекцию с именем «x» один элемент; «(?'-x')» убирает из коллекции...
Описание слайда:
Сбалансированные определения Сбалансированные определения: «(?'x')» добавляет в коллекцию с именем «x» один элемент; «(?'-x')» убирает из коллекции «x» один элемент; «(?(x)(?!))» проверяет, что в коллекции «x» не осталось элементов. Язык L, описывающий вложенные операторы языка Pascal «begin end;»: @"^\s*((?'begin'begin\s+)+(?'-begin'end\s*;\s*)+)*(?(begin)(?!))$".



Похожие презентации
Mypresentation.ru
Загрузить презентацию