Пример.

 

Напишем РВ для множества цепочек из чередующихся нулей и единиц.

1. Построим РВ для языка, состоящего из одной цепочки «01».

2. Построим выражение для всех цепочек вида 0101…01.

 

1. 0 и 1 – выражения для языков {0} и {1}, 01 – для языка {01}.

2. (01)* - для всех вхождений «01».

 

Это еще не все, есть другие варианты правильных цепочек.

 

(10)* - для всех вхождений «10».

0(10)* - для цепочек, которые начинаются и заканчиваются нулем.

(10)*1 - для цепочек, которые начинаются и заканчиваются единицей.

 

Объединяя эти цепочки получим итоговое РВ:

 

(01)* + (10)* +0(10)* + 1(01)*

 

 

Задача. Построить РВ для множества цепочек из 0 и 1, в которых каждая пара смежных нулей находится перед парой смежных единиц.

 

 

1* + (01)* + (0011)*

 

Применение регулярных выражений

 

 

Регулярные выражения широко применяются в ОС UNIX. Рассмотрим запись выражений в этой системе и затем – два важных класса приложений, основанных на регулярных выражениях: лексические анализаторы и поиск в тексте.