- •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. Використання вбудованих функції,означення власних функції користувача та їх використання.
8. Застосування регулярних виразів для конкретного пошуку тексту. Програма grep.Опис, опції, приклад.
Регулярні вирази застосовуються в багатьох редакторах, таких як emacs, в програмах grep/egrep і мовах, таких як awk, perl і sed. Регулярні вирази використовуються для розширеного контекстного пошуку і модифікації тексту. Регулярний вираз — це формальний опис шаблону, який відповідає текстовому рядку. Хоча регулярні вирази дуже широко поширені в світі Linux/unix, але не існує такої штуки, як "стандартна мова регулярних виразів". Є декілька різних діалектів. Наприклад, два типи програми grep: grep і egrep. Обидві використовують регулярні вирази з можливостями, що трохи відрізняються. Perl, можливо, має повніший набір регулярних виразів. На щастя, всі вони слідують загальним принципам.
Команда grep, одна із самих відомих і потрібних команд Юніксовидних ОС, веде свій початок від першого текстового редактора Юникс - ed. В цьому редакторі була команда g/re/p (global/regular expression/print), яка і дала свою назву новій програмі.
Використовує недетермінований алгоритм. Если имя_файла не указано, grep предполагает поиск в стандартном входном потоке. Команда grep слугує для пошуку рядка, який містить задачний користувачем зразок. Якщо ім’я файлу не задати то пошук буде задіяний безпосередньо у комінді вводу. Може також обробляти велику кількість файлів записаних через пробіл.
Синтаксис
grep зразок имя_файлу.
/usr/bin/grep [ -bchilnsvw ] ограниченное_регулярное_выражение [ имя_файла ... ]
/usr/xpg4/bin/grep [ -E | -F ] [ -c | -l | -q ] [ -bhinsvwx ] -e список_образцов ... [ -f файл_образцов ] ... [ имя_файла ... ]
Список зразків переважно беруть в однинарні лапки ‘ ’
Опції:
-e – програмі вказує на те,що зразок списку - це повний регулярний вираз.
-f – визначається як фіксовані рядки
Якщо жодна з даних опцій не вказана, інтерпретує елементи спуску – зразка як прості регулярні вирази
-b - Предваряет каждую строку номером блока, в котором она была найдена.
c |
Выдает только количество строк, содержащих образец. |
h |
Предотвращает выдачу имени файла, содержащего сопоставившуюся строку, перед собственно строкой. Используется при поиске по нескольким файлам. |
i |
Игнорирует регистр символов при сравнениях. |
l |
Выдает только имена файлов, содержащих сопоставившиеся строки, по одному в строке. Если образец найден в нескольких строках файла, имя файла не повторяется. |
n |
Выдает перед каждой строкой ее номер в файле (строки нумеруются с 1). |
s |
Подавляет выдачу сообщений о не существующих или недоступных для чтения файлах. |
v |
Выдает все строки, за исключением содержащих образец.
|
e список_образцов Задает один или несколько образцов для поиска. Образцы в списке_образцов должны разделяться символами новой строки
f файл_образцов Читает один или несколько образцов из файла с указанным полным именем файл_образцов. Образцы в файле_образцовзавершаются символом новой строки. Пустой образец можно задать с помощью пустой строки в файле_образцов. Если только вместе с этой опцией не указана опция -E или -F, каждый образец счиается простым регулярным выражением.
-F Задает сопоставление с фиксированными строками. Каждый образец ищется как строка, а не как регулярное выражение. Если входная строка содержит любой из образцов в качестве подряд идущих байтов, такая строка считается соответствующей образцу.
-x Считает сопоставившимися только строки, все символы которых использованы при сопоставлении с фиксированной строкой или регулярным выражением.
Образцы в списке_образцов должны разделяться символами новой строки.
Приклади
Пример 1: Поиск всех вхождений слова
Чтобы найти все вхождения слова "Posix" (независимо от регистра) в файле text.mm и выдать номера соответствующих строк:
example% /usr/bin/grep -i -n posix text.mm
Пример 2: Поиск пустых строк
Чтобы найти все пустые строки в стандартном входном потоке:
example% /usr/bin/grep ^$ або
example% /usr/bin/grep -v .
Пример 3: Поиск строк, содержащих фиксированные подстроки
Обе следующих команды выдают все строки, содержащие подстроки abc, def или и ту, и другую:
example% /usr/xpg4/bin/grep -E 'abc def' example% /usr/xpg4/bin/grep -F 'abc def'