🗊Презентация Регулярные выражения. (Лекция 4)

Нажмите для полного просмотра!
Регулярные выражения. (Лекция 4), слайд №1Регулярные выражения. (Лекция 4), слайд №2Регулярные выражения. (Лекция 4), слайд №3Регулярные выражения. (Лекция 4), слайд №4Регулярные выражения. (Лекция 4), слайд №5Регулярные выражения. (Лекция 4), слайд №6Регулярные выражения. (Лекция 4), слайд №7Регулярные выражения. (Лекция 4), слайд №8Регулярные выражения. (Лекция 4), слайд №9Регулярные выражения. (Лекция 4), слайд №10Регулярные выражения. (Лекция 4), слайд №11Регулярные выражения. (Лекция 4), слайд №12Регулярные выражения. (Лекция 4), слайд №13Регулярные выражения. (Лекция 4), слайд №14Регулярные выражения. (Лекция 4), слайд №15Регулярные выражения. (Лекция 4), слайд №16Регулярные выражения. (Лекция 4), слайд №17Регулярные выражения. (Лекция 4), слайд №18Регулярные выражения. (Лекция 4), слайд №19

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

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


Слайд 1






Лекция 04.
Регулярные выражения
Описание слайда:
Лекция 04. Регулярные выражения

Слайд 2





Регулярные множества
Регулярные множества – это следующие множества цепочек символов из некоторого алфавита Σ:
Пустое множество Ø.
Множество из пустой цепочки {λ}.
Множество из любого символа {a} алфавита Σ.
Множество всех возможных цепочек вида αβ (конкатенация); 
     α Є A, β Є B, где A, B – регулярные  множества.
Объединение множеств A U B, где A, B – регулярные     множества.
Объединение множеств всех возможных цепочек вида
    λ, α1, α1α2, α1α2α3, . . . и т.д., где все α1, α2, α3, . . . принадлежат регулярному  множеству A (A* – транзитивное замыкание A ).
Описание слайда:
Регулярные множества Регулярные множества – это следующие множества цепочек символов из некоторого алфавита Σ: Пустое множество Ø. Множество из пустой цепочки {λ}. Множество из любого символа {a} алфавита Σ. Множество всех возможных цепочек вида αβ (конкатенация); α Є A, β Є B, где A, B – регулярные множества. Объединение множеств A U B, где A, B – регулярные множества. Объединение множеств всех возможных цепочек вида λ, α1, α1α2, α1α2α3, . . . и т.д., где все α1, α2, α3, . . . принадлежат регулярному множеству A (A* – транзитивное замыкание A ).

Слайд 3





Регулярные выражения
Регулярное выражение – это шаблон для задания регулярного множества цепочек символов из некоторого алфавита Σ. 
Кроме символов алфавита Σ в регулярное выражение могут входить вспомогательные метасимволы: Ø (пустое множество), λ (пустая строка), скобки { }, скобки { }*, вертикальная черта  |.
Пустое множество обозначается знаком Ø.
Пустая цепочка обозначается знаком λ.
Символ алфавита Σ обозначает себя сам.
Если α и β – оба регулярные выражения, то запись вида αβ – регулярное выражение, обозначающее конкатенацию цепочек из α и β ; 
Если α и β – оба регулярные выражения, то запись вида α | β – регулярное выражение, обозначающее объединение множеств цепочек из α и β ; 
Если α – регулярное выражения, то запись вида {α} – то же самое регулярное выражение, рассматриваемое, как единое целое; 
Если α – регулярное выражения, то запись вида {α}* – регулярное выражение, обозначающее объединение множеств цепочек из:
 λ, α, αα, ααα, . . .
     и т.д., ({α}* – транзитивное замыкание α).
Описание слайда:
Регулярные выражения Регулярное выражение – это шаблон для задания регулярного множества цепочек символов из некоторого алфавита Σ. Кроме символов алфавита Σ в регулярное выражение могут входить вспомогательные метасимволы: Ø (пустое множество), λ (пустая строка), скобки { }, скобки { }*, вертикальная черта |. Пустое множество обозначается знаком Ø. Пустая цепочка обозначается знаком λ. Символ алфавита Σ обозначает себя сам. Если α и β – оба регулярные выражения, то запись вида αβ – регулярное выражение, обозначающее конкатенацию цепочек из α и β ; Если α и β – оба регулярные выражения, то запись вида α | β – регулярное выражение, обозначающее объединение множеств цепочек из α и β ; Если α – регулярное выражения, то запись вида {α} – то же самое регулярное выражение, рассматриваемое, как единое целое; Если α – регулярное выражения, то запись вида {α}* – регулярное выражение, обозначающее объединение множеств цепочек из: λ, α, αα, ααα, . . . и т.д., ({α}* – транзитивное замыкание α).

Слайд 4





Примеры
1. Регулярное выражение:
{λ|+|–}{0|1|2|3|4|5|6|7|8|9}{0|1|2|3|4|5|6|7|8|9}*
задает запись целого числа без знака или со знаком «+» или «–».
____________________________________________________________________________________________________________________________________
Для краткости вместо явного перечисления цифр или букв через символ «|», будем использовать многоточие.
____________________________________________________________________________________________________________________________________
2. Регулярное выражение:
{0|1|. . . |9}{0|1|. . . |9}* .{0|1|. . . |9}{0|1|. . . |9}* 
задает запись беззнакового десятичного числа с дробной частью.
____________________________________________________________________________________________________________________________________
3. Регулярное выражение:
{A|B|. . .|Z}{0|1|. . . |9|A|B|. . .|Z}*
задает запись идентификатора (имени) для большинства языков программирования.
Описание слайда:
Примеры 1. Регулярное выражение: {λ|+|–}{0|1|2|3|4|5|6|7|8|9}{0|1|2|3|4|5|6|7|8|9}* задает запись целого числа без знака или со знаком «+» или «–». ____________________________________________________________________________________________________________________________________ Для краткости вместо явного перечисления цифр или букв через символ «|», будем использовать многоточие. ____________________________________________________________________________________________________________________________________ 2. Регулярное выражение: {0|1|. . . |9}{0|1|. . . |9}* .{0|1|. . . |9}{0|1|. . . |9}* задает запись беззнакового десятичного числа с дробной частью. ____________________________________________________________________________________________________________________________________ 3. Регулярное выражение: {A|B|. . .|Z}{0|1|. . . |9|A|B|. . .|Z}* задает запись идентификатора (имени) для большинства языков программирования.

Слайд 5





Преобразование регулярного выражения к праволинейной грамматике
1. Пусть задано регулярное выражение α. Запишем прообраз порождающего правила в виде: S → α, где S – начальный  нетерминал.
2. Пусть прообраз порождающего правила имеет вид: A → aβ,
	где A – некоторый  нетерминал, a – терминал. Заменим это правило на следующие: A → aB, B → β, где B – новый  нетерминал.
3. Пусть прообраз порождающего правила имеет вид: 
    A → {α1|α2}β, где A – некоторый  нетерминал. Заменим это правило на следующие: A → α1β, A → α2β.
4. Пусть прообраз порождающего правила имеет вид: 
    A → {α}*β, где A – некоторый  нетерминал. Заменим это правило на следующие: A → β, A → αA.
Преобразования проводятся до тех пор, пока все полученные порождающие правила не станут праволинейными.
Описание слайда:
Преобразование регулярного выражения к праволинейной грамматике 1. Пусть задано регулярное выражение α. Запишем прообраз порождающего правила в виде: S → α, где S – начальный нетерминал. 2. Пусть прообраз порождающего правила имеет вид: A → aβ, где A – некоторый нетерминал, a – терминал. Заменим это правило на следующие: A → aB, B → β, где B – новый нетерминал. 3. Пусть прообраз порождающего правила имеет вид: A → {α1|α2}β, где A – некоторый нетерминал. Заменим это правило на следующие: A → α1β, A → α2β. 4. Пусть прообраз порождающего правила имеет вид: A → {α}*β, где A – некоторый нетерминал. Заменим это правило на следующие: A → β, A → αA. Преобразования проводятся до тех пор, пока все полученные порождающие правила не станут праволинейными.

Слайд 6





Реализация регулярных выражений
Наибольшее развитие регулярные выражения получили в Perl, где их поддержка встроена непосредственно в интерпретатор. 
В VBScript и JScript используется объект RegExp, в С/С++ можно использовать библиотеки Regex++ и PCRE (Perl Compatible Regular Expression).
Для Java существует целый набор расширений – ORO , RegExp, Rex и gnu.regexp.
Microsoft Visual Studio.Net
Описание слайда:
Реализация регулярных выражений Наибольшее развитие регулярные выражения получили в Perl, где их поддержка встроена непосредственно в интерпретатор. В VBScript и JScript используется объект RegExp, в С/С++ можно использовать библиотеки Regex++ и PCRE (Perl Compatible Regular Expression). Для Java существует целый набор расширений – ORO , RegExp, Rex и gnu.regexp. Microsoft Visual Studio.Net

Слайд 7





Опции
/i Поиск без учета регистра.
/m Многострочный режим, позволяющий находить совпадения в начале или конце строки, а не всего текста.
/n  Находит только явно именованные или нумерованные группы в форме (?<name>…). Значение этого будет объяснено ниже, при обсуждении роли скобок в регулярных выражениях.
/c  Компилирует. Генерирует промежуточный MSIL-код, перед исполнением превращающийся в машинный код.
/s Позволяет интерпретировать конец строки как обыкновенный символ-разделитель. Часто это значительно упрощает жизнь.
/x Исключает из образца неприкрытые незначащие символы (пробелы, табуляция и т.д.) и включает комментарии в стиле Perl (#). Есть некоторая вероятность, что к выходу в свет эти комментарии могут исчезнуть.
/r  Ищет справа налево.
Описание слайда:
Опции /i Поиск без учета регистра. /m Многострочный режим, позволяющий находить совпадения в начале или конце строки, а не всего текста. /n Находит только явно именованные или нумерованные группы в форме (?<name>…). Значение этого будет объяснено ниже, при обсуждении роли скобок в регулярных выражениях. /c Компилирует. Генерирует промежуточный MSIL-код, перед исполнением превращающийся в машинный код. /s Позволяет интерпретировать конец строки как обыкновенный символ-разделитель. Часто это значительно упрощает жизнь. /x Исключает из образца неприкрытые незначащие символы (пробелы, табуляция и т.д.) и включает комментарии в стиле Perl (#). Есть некоторая вероятность, что к выходу в свет эти комментарии могут исчезнуть. /r Ищет справа налево.

Слайд 8





Метасимволы
\	- считать следующий метасимвол как обычный символ.
^	- начало строки
.	- один произвольный символ. Кроме '\n' - конец строки.
$	- конец строки
|	- альтернатива (или)
()	- группировка
[]	- класс символов
Описание слайда:
Метасимволы \ - считать следующий метасимвол как обычный символ. ^ - начало строки . - один произвольный символ. Кроме '\n' - конец строки. $ - конец строки | - альтернатива (или) () - группировка [] - класс символов

Слайд 9





Метасимволы
\w Слово. То же, что и [a-zA-Z_0-9].
\W Все, кроме слов. То же, что и [^a-zA-Z_0-9].
\s Любое пустое место. То же, что и [ \f\n\r\t\v].
\S Любое непустое место. То же, что и 
[^ \f\n\r\t\v].
\d Десятичная цифра. То же, что и [0-9].
\D Не цифра. То же, что и [^0-9].
Описание слайда:
Метасимволы \w Слово. То же, что и [a-zA-Z_0-9]. \W Все, кроме слов. То же, что и [^a-zA-Z_0-9]. \s Любое пустое место. То же, что и [ \f\n\r\t\v]. \S Любое непустое место. То же, что и [^ \f\n\r\t\v]. \d Десятичная цифра. То же, что и [0-9]. \D Не цифра. То же, что и [^0-9].

Слайд 10





Метасимволы для последовательностей
\w+	- слово
\d+	- целое число
[+-]?\d+	- целое со знаком
[+-]?\d+\.?\d*	- число с точкой
Описание слайда:
Метасимволы для последовательностей \w+ - слово \d+ - целое число [+-]?\d+ - целое со знаком [+-]?\d+\.?\d* - число с точкой

Слайд 11





Мнимые метасимволы
\b	- граница слова
\B	- не граница слова
\A	- начало строки
\Z	- конец строки
\G	- конец действия m//g
Описание слайда:
Мнимые метасимволы \b - граница слова \B - не граница слова \A - начало строки \Z - конец строки \G - конец действия m//g

Слайд 12





Квантификаторы
* Соответствует 0 или более вхождений предшествующего выражения. Например, 'zo*' соответствует "z" и "zoo".
+ Соответствует 1 или более предшествующих выражений. Например, "zo+" соответствует "zo" and "zoo", но не "z".
? Соответствует 0 или 1 предшествующих выражений. Например, 'do(es)?' соответствует "do" в "do" or "does".
{n} n – неотрицательное целое. Соответствует точному количеству вхождений. Например, 'o{2}' не найдет "o" в "Bob",но найдет два "o"' в "food".
{n,} n – неотрицательное целое. Соответствует вхождению, повторенному не менее n раз. Например, 'o{2,}' не находит "o" в "Bob", зато находит все "o" в "foooood". 'o{1,}' эквивалентно 'o+'. 'o{0,}' эквивалентно 'o*'.
{n,m} m и n – неотрицательные целые числа, где n <= m. Соответствует минимум n и максимум m вхождений. Например, 'o{1,3} находит три первые "o" в "fooooood". 'o{0,1}' эквивалентно 'o?'. Пробел между запятой и цифрами недопустим.
Описание слайда:
Квантификаторы * Соответствует 0 или более вхождений предшествующего выражения. Например, 'zo*' соответствует "z" и "zoo". + Соответствует 1 или более предшествующих выражений. Например, "zo+" соответствует "zo" and "zoo", но не "z". ? Соответствует 0 или 1 предшествующих выражений. Например, 'do(es)?' соответствует "do" в "do" or "does". {n} n – неотрицательное целое. Соответствует точному количеству вхождений. Например, 'o{2}' не найдет "o" в "Bob",но найдет два "o"' в "food". {n,} n – неотрицательное целое. Соответствует вхождению, повторенному не менее n раз. Например, 'o{2,}' не находит "o" в "Bob", зато находит все "o" в "foooood". 'o{1,}' эквивалентно 'o+'. 'o{0,}' эквивалентно 'o*'. {n,m} m и n – неотрицательные целые числа, где n <= m. Соответствует минимум n и максимум m вхождений. Например, 'o{1,3} находит три первые "o" в "fooooood". 'o{0,1}' эквивалентно 'o?'. Пробел между запятой и цифрами недопустим.

Слайд 13





«Жадность»
Важной особенностью квантификаторов '*' и '+' является их всеядность. Они находят все, что смогут – вместо того, что нужно. 
Излечить квантификатор от жадности можно, добавив '?'.
Описание слайда:
«Жадность» Важной особенностью квантификаторов '*' и '+' является их всеядность. Они находят все, что смогут – вместо того, что нужно. Излечить квантификатор от жадности можно, добавив '?'.

Слайд 14





Умерить аппетит
*?	- станет 0 и более
+?	- 1 и более
??	- 0 или 1 раз
{n}?	- точно n раз
{n,}?	- не меньше n раз
{n,m}?	- больше или равно n и меньше m раз
Описание слайда:
Умерить аппетит *? - станет 0 и более +? - 1 и более ?? - 0 или 1 раз {n}? - точно n раз {n,}? - не меньше n раз {n,m}? - больше или равно n и меньше m раз

Слайд 15





Дополнительные переменные 
$1, $2, …
$+	- обозначает последнее совпадение
$&	- все совпадение
$`	- все до совпадения
$'	- все после совпадения
Описание слайда:
Дополнительные переменные $1, $2, … $+ - обозначает последнее совпадение $& - все совпадение $` - все до совпадения $' - все после совпадения

Слайд 16





Правила регулярного выражения
Любой символ обозначает себя самого, если это не метасимвол. Если вам нужно отменить действие метасимвола, то поставьте перед ним '\'. 
Строка символов обозначает строку этих символов. 
Множество возможных символов (класс) заключается в квадратные скобки '[]', это значит, что в данном месте может стоять один из указанных в скобках символов. Если первый символ в скобках это '^' - значит ни один из указанных символов не может стоять в данном месте выражения. Внутри класса можно употреблять символ '-', обозначающий диапазон символов. Например, a-z - один из малых букв латинского алфавита, 0-9 - цифра и т.д. 
Все символы, включая специальные, можно обозначать с помощью '\' как в языке С. 
Альтернативные последовательности разделяются символом '|' Заметьте что внутри квадратных скобок это обычный символ. 
Внутри регулярного выражения можно указывать "подшаблоны" заключая их в круглые скобки и ссылаться на них как '\номер' Первая скобка обозначается как '\1'.
Описание слайда:
Правила регулярного выражения Любой символ обозначает себя самого, если это не метасимвол. Если вам нужно отменить действие метасимвола, то поставьте перед ним '\'. Строка символов обозначает строку этих символов. Множество возможных символов (класс) заключается в квадратные скобки '[]', это значит, что в данном месте может стоять один из указанных в скобках символов. Если первый символ в скобках это '^' - значит ни один из указанных символов не может стоять в данном месте выражения. Внутри класса можно употреблять символ '-', обозначающий диапазон символов. Например, a-z - один из малых букв латинского алфавита, 0-9 - цифра и т.д. Все символы, включая специальные, можно обозначать с помощью '\' как в языке С. Альтернативные последовательности разделяются символом '|' Заметьте что внутри квадратных скобок это обычный символ. Внутри регулярного выражения можно указывать "подшаблоны" заключая их в круглые скобки и ссылаться на них как '\номер' Первая скобка обозначается как '\1'.

Слайд 17





Например,
$str=~/perl/;	проверяет, есть ли в строке $str подстрока "perl"
$str=~/^perl/;	проверяет, начинается ли строка с подстроки "perl"
$str=~/perl$/;	проверяет, заканчивается ли строка на подстроку "perl"
$str=~/c|g|i/;	проверяет, содержит ли строка символ 'c' или 'g' или 'i'
$str=~/cg{2,4}i/;	проверяет, содержит ли строка символ 'c', следующие сразу за ним 2-4 символа 'g', за которыми следует символ 'i'
Описание слайда:
Например, $str=~/perl/; проверяет, есть ли в строке $str подстрока "perl" $str=~/^perl/; проверяет, начинается ли строка с подстроки "perl" $str=~/perl$/; проверяет, заканчивается ли строка на подстроку "perl" $str=~/c|g|i/; проверяет, содержит ли строка символ 'c' или 'g' или 'i' $str=~/cg{2,4}i/; проверяет, содержит ли строка символ 'c', следующие сразу за ним 2-4 символа 'g', за которыми следует символ 'i'

Слайд 18


Регулярные выражения. (Лекция 4), слайд №18
Описание слайда:

Слайд 19






Следующая тема:
«Конечные автоматы»
Описание слайда:
Следующая тема: «Конечные автоматы»



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