Наша взаимовыгодная связь https://banwar.org/
Тепер знову звернемося до теми, в зв'язку з якою розглядалися NFA-авто-мати. Поговоримо про регулярні вирази. Перш за все, згадаємо, що вони собою представляють. По суті, регулярні вирази (regular expression) - це міні-мову простого опису шаблону, призначеного для пошуку тексту (або, якщо говорити більш строго, збігається з ним тексту). У найпростішій формі регулярний вираз складається з слова або набору символів, Однак, використовуючи стандартні метасимволи (або символи операцій регулярного виразу), можна виконувати пошук більш складних шаблонів. Стандартними метасимвол є п.щ (відповідає будь-якому символу, крім символу нового рядка), w? W (відповідає нулю або більше повторень попереднього подвираженія), "* п (відповідає нулю або більше повторень попереднього подвираженія), і + п (відповідає одному або більше повторень попереднього подвираженія) і w | " (Символ операції АБО, яка встановлює відповідність з лівим або з правим подвираженіем). Можна визначити також клас символу для установки відповідності з одним з наборів символів. Якщо першим символом класу символів є ПЛП, це означає заперечення класу. Тобто символи класу не повинні збігатися з іншими символами набору.
Правила подання регулярних виразів, з якими ми будемо працювати, показані на рис. 10.5. Вони записані в стандартній формі BNF (Backus-Naur Form - форма Бекуса-Наура, БНФ). ": Означає" визначено як ", а" | "означає" АБО ". Отже, перший рядок означає наступне: <вираз> є або <членом>, або <членом>, за яким слід символ вертикальної риски, а за ним - ще одне <вираз>. Другий рядок означає: <член> - це або <кое $ фициент>, або <коефіцієнт ^ за яким слід <член>, і т.д. це визначення граматичних правил (вони називаються "граматичними", оскільки визначають мова. Якщо звернутися до довідкової системи Delphi, в ній можна знайти граматичні правила мови Object Pascal. Вони визначені таким же чином.) може використовуватися для генерування підпрограми обчислення регулярного виразу. Незабаром ми побачимо, як це робиться. А поки візьміть до уваги, що визначення граматичних правил може використовуватися для швидкої перевірки того, що дане регулярне вираз є правильним.
Ймовірно, краще навести кілька прикладів регулярних виразів. Це допоможе зрозуміти їх застосування.

Ріс.10.5.Грамматіческіе правила складання регулярних виразів, представлені у формі БНФ
Це регулярний вираз відповідає імені ідентифікатора в мові Pascal. Перше укладену в квадратні дужки підвираз - клас символів, з визначення якого випливає, що першим символом рядка, для якої буде встановлюватися відповідність, повинна бути буква, прописна або рядкова, або символ підкреслення. Друге укладену в квадратні дужки підвираз - ще один клас символів, що співпадає з першим, за винятком того, що в нього додані цифри. Цей шаблон може повторюватися нуль або більше разів (що визначено символом * в кінці регулярного виразу). Таким чином, цього регулярному виразу відповідає буква або символ підкреслення, за якою слід нуль або більше букв, символів підкреслення або цифр.
(+ | -)? [0-9] + (. [0-9] +)?Це регулярний вираз відповідає уявленню цілого числа або числа з плаваючою точкою в мові Pascal. Воно означає необов'язковий знак, одну або більше цифр і необов'язкову дробову частину. Дрібна частина складається з десяткового дробу, за якою слідує одна або більше цифр. Якщо дрібна частина відсутня, число є цілим. Якщо вона присутня, число є числом з плаваючою крапкою.
НЛ}] *} Цей останній приклад регулярного виразу відповідає коментарю в мові Pascal, який поміщається в фігурні дужки. Вираз означає наявність відкриває фігурної дужки, за якою слід нуль або більше символів, жоден з яких не є закриваючою дужкою, а потім слід закриває фігурна дужка.
⇐ Детерміновані і недетерміновані кінцеві автомати || Зміст || Використання регулярних виразів ⇒
Відповідає будь-якому символу, крім символу нового рядка), w?