Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы.doc
Скачиваний:
10
Добавлен:
29.10.2018
Размер:
241.15 Кб
Скачать

3. Регулярные выражения как способ определения языка. Первый вариант

Регуля́рные выраже́ния — это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец, состоящая из символов и метасимволов и задающая правило поиска.

Регулярные выражения состоят из констант и операторов, которые определяют множества строк и множества операций на них соответственно. На данном конечном алфавите Σ определены следующие константы:

(пустое множество) ∅.

(пустая строка) ε обозначает строку, не содержащую ни одного символа. Эквивалентно «».

(символьный литерал) «a», где a — символ алфавита Σ.

и следующие операции:

(сцепление, конкатенация) RS обозначает множество {αβ | α ∈ R & β ∈ S}. Например, {"boy", "girl"}{"friend", "cott"} = {"boyfriend", "girlfriend", "boycott", "girlcott"}.

(дизъюнкция, чередование) R|S обозначает объединение R и S. Например, {"ab", "c"}|{"ab", "d", "ef"} = {"ab", "c", "d", "ef"}.[4]

(замыкание Клини, звезда Клини) R* обозначает минимальное надмножество множества R, которое содержит ε и замкнуто относительно конкатенации. Это есть множество всех строк, полученных конкатенацией нуля или более строк из R. Например, {"Go", "Russia"}* = {ε, "Go", "Russia", "GoGo", "GoRussia", "RussiaGo", "RussiaRussia", "GoGoGo", "GoGoRussia", "GoRussiaGo", …}.

Второй вариант

Регулярные выражения — это аналитический (формульный) способ задания регулярных языков.

Определение. Регулярным выражением над алфавитом называется выражение, построенное по следующим правилам:

  • — регулярное выражение;

  • — регулярное выражение;

  • — регулярное выражение, если ;

  • — регулярное выражение, если и — регулярные выражения;

  • — регулярное выражение, если и — регулярные выражения;

  • — регулярное выражение, если — регулярное выражение.

Регулярное выражение задает язык в соответствии со следующими правилами:

  • — пустой язык;

  • — язык, состоящий из одного пустого слова;

  • — язык, состоящий из одного однобуквенного слова ;

  • ;

  • ;

  • .

Пример. Рассмотрим регулярное выражение над алфавитом . Язык состоит из слов, в которых на нечетных местах стоит символ , а на четных или .

Замечание 1. В регулярных выражениях вместо знака "" часто используют знак "".

Замечание 2. Если дополнить правила построения регулярных выражений еще двумя правилами

  1. — регулярное выражение, если и — регулярные выражения,

  2. — регулярное выражение, если — регулярное выражение, и , а ,

то получим так называемые расширенные регулярные выражения. Здесь дополнение берется до множества всех слов в алфавите . Если не использовать дополнение, то получим полурасширенное регулярное выражение.

Как увидим в дальнейшем, использование расширенных регулярных выражений не расширяет класса регулярных языков.

Замечание 3. Используя описанную выше интерпретацию регулярных выражений, мы будем вместо соотношения писать .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]