- •1.Формальнi мови
- •2.Регулярні мови і регулярні вирази.
- •3.Формальні породжувальні граматики.Типи граматик.
- •4.Автомати Мілі та автомати Мура.Типи автоматів. Способи задання автоматів.
- •6. Недетерміновані скінченні автомати без виходу.Алгоритми синтезу нса.
- •7. Скінченні автомати та регулярні мови. Зв’язок прямолінійних граматик з скінченними автоматами. Існування нерегулярних мов. Лема про роздування.
- •8. Застосування регулярних виразів для конкретного пошуку тексту. Програма grep.Опис, опції, приклад.
- •Розширені регулярні вирази. Метасимволи початку, кінця рядка та довільного символу. Вибір, пошук рядків, які містять декілька регулярних виразів.
- •Квантифікатори (повторювачі). Визначення інтервалів та кількості екземплярів.
- •Символьні класи. Інвертовані символьні класи. Стандартні символьні класи. Приклади використання.
- •12. Групи та зворотні посилання. Приклади використання.
- •Застосування регулярних виразів для обробки тексту. Потоковий текстовий редактор sed. Опис опцій, адресація приклади.
- •Функції редактора sed. Функція контекстної заміни тексту.
- •Функція видалення d, друк p та вставки нових рядків a,c,I. Стирання: d
- •Інверсне обмеження: !
- •Співвідношення між d, p та !
- •Функція транслітерації та шифрування тексту. Приклади використання функції обміну інформацією між робочим та допоміжним буферами.
- •Цикл выполнения
- •Регулярні вирази в програмних продуктах LibreOffice та TotalCommander.
- •Приклад 1
- •Арифметичні та алгебраїчні обчислення в системі Mathematica: арифметичні операції, основні елементарні функції, перетворення алгебраїчних виразів, правила заміни.
- •Операції математичного аналізу в системі Mathematica: знаходження похідних, інтегралів, сум, добутків розв’язування рівнянь.
- •Функції в системі Mathematica. Використання вбудованих функції,означення власних функції користувача та їх використання.
Цикл выполнения
sed работает с двумя буферами данных: основным и вспомогательным. Изначально оба буфера пусты. Работа с этими буферами осуществляется при помощи команд:\`h', `H', `x', `g', `G' `D' h - Заменить содержимое вспомогательного буфера содержимым основного H - Добавить новую строку к вспомогательному буферу и затем добавить содержимое основного буфера к содержимому вспомогательного x - Поменять содержимое обоих буферов местами g - Заменить содержимое основного буфера содержимым вспомогательного G - Добавить новую строку к основному буферу и затем добавить содержимое вспомогательного буфера к содержимому основного D - Удалить текст основного буфера до следующего символа перевода строки N - Добавить новую строку к основному буферу, затем добавить туда следующую обрабатываемую строку P - Вывести содержимое основного буфера до следующего символа перевода строки
Здесь обсуждаются команды sed, которые тоже очень полезны при составлении скриптов и редактировании текстов внутри скриптов.
y/source-chers/dest-chars/ Заменить во водном потоке любой символ из source-chers на соответствующий ему символ из dest-chars. Другими словами, третий символ из source-chers заменить на третий символ изdest-chars. Строки source-chers и dest-chars должны содержать одинаковое число символов. Например, команда echo жужжал | sed y/жул/gul/ даст в результате guggаl
l Вывести основной буфер в стандартной форме: не изображаемые символы выводятся в виде восьмеричных кодов, которым предшествует обратный слеш; длинные строки будут разбиты на более мелкие строки (места разбиения будут показаны обратными слешами); конец строки отмечается символом $ (знак доллар). Например,
$ echo "ЖужжалиБабочкиЖужжалиБабочки" | sed -n l
\366\325\326\326\301\314\311\342\301\302\317\336\313\311\366\325\326\
\326\301\314\311\342\301\302\317\336\313\311$
Как видим Кириллица распозна©тся как не изображаемые символы.
r filename Прочесть файл с именем filename и поместить его в выводной поток в очередном цикле чтения вводного потока. Если файл с именем filename не может быть прочитан по любым причинам, то не выда©тся никакой диагностики, а файл рассматривается как файл с═нулевой длиной.
wfilename Записать основной буфер в файл с именем filename (мне удалось проверить эту команду, когда я убрал пробел между командой и именем файла).
Регулярні вирази в програмних продуктах LibreOffice та TotalCommander.
Пошук в librOffice. Повертає позицію текстового сегмента в рядку символів. Можна встановити початкову позицію в якості опції. Пошук здійснюється без урахування регістра кожен символ який потрібно знайти передує символом \. Можна переключити автоматичну оцінку регулярних виразів. Синтаксис SEARCH("FindText"; "Text"; Position).
FindText це текст для пошуку.
Текст текст, в якому пошук буде відбуватися.
Додаткові характеристики:
\ - сприймає додаткові символи як звичайні символи, а не службові.
\> - Тільки знайти термін, якщо він з'являється в кінці слова. Наприклад "book\>" знайде "checkbook", але не "bookmark".
\ < - Тільки знайти термін, якщо він з'являється на початку слова. Наприклад "\<book" знайде "bookmark", але не "checkbook".
& or $0 Додавання рядка, знайденої за допомогою пошуку в пошук вікна в термін Замінити на поле, коли ви робите заміни.
\xXXXX - Представляє особливий характер на основі його чотиризначного шістнадцяткового коду (XXXX).
Код для спеціального символу залежить від використовуваного шрифту. Ви можете переглянути код, вибравши Вставка - Спеціальний символ .
{2} – кількість повторень символи який передує даним дужкам Приклад "tre{2}" знайде і виділить"tree".
({1,2} – мінімальна і максимальна кількість повторень).
^ [: Цифри:] {3} $
^ Означає, що фраза повинен бути на початку абзацу,
[: Цифри:] відповідає будь десяткової цифри,
{3} означає, що фраза повинно бути рівно 3 копій "цифру",
$ Означає, що фраза повинен закінчитися пункту.
Total Commander підтримує регулярні вирази в наступні функції: - Команди - пошук (в ім'я файлу і його вміст) - У Lister - В Групове перейменування файлів - У діалоговому вікні вибору
Регулярні вирази складаються зі звичайних символів та спеціальних символів, так звані мета-символами. Наступні символи є мета-символи або початкової частини мета-символи:
. \ () [] {} ^ $ + *? (Тільки в класах символів: -)
Meta-characters
Here is a list of the most important meta-characters:
^ |
Line start |
$ |
Line end |
. |
Any character |
\w |
буква, цифра або знак підкреслення _ |
\W |
протилежність \w |
\d |
цифри |
\D |
немає цифр |
\s |
роздільник слів (пропуск, табуляція тощо) |
\S |
НЕ роздільник слів |
\b |
знаходить кордон слова (комбінації \s і \S) |
\B |
протилежність \b |
Modifiers
Modifiers are used for changing behaviour of regular expressions.
(?i) |
Ігнорувати Upper-/lowercase In Total Commander, це значення за замовчуванням для імен файлів. |
(?-i) |
З урахуванням регістру відповідності |
(?g) |
Перемикачі на "жадібний" режим (включений за замовчуванням) |
(?-g) |
Вимкнення "жадібний" режим, так що "+" означає те ж, +?" |
The other modificators are not relevant for Total Commander, because the program only supports searching within one line.
Total Commander uses the free Delphi library TRegExpr by Andrey V. Sorokin: http://regexpstudio.com/ Some of the above explanations are from the help file for this library.