- •Министерство образования и науки российской федерации
- •Обработка текстов с использованием регулярных выражений
- •305040, Г.Курск, ул. 50 лет Октября, 94. Содержание
- •Введение
- •1. Цель работы
- •2. Необходимое программное обеспечение
- •3. Теоретическая часть
- •3.1. Зачем нужны регулярные выражения
- •3.2. Регулярные выражения: что это такое?
- •3.3. Синтаксис регулярных выражений
- •3.3.1. Метасимволы
- •Значения метасимволов
- •Последовательности метасимволов
- •3.3.2. Символьные классы
- •3.3.3. Квантификаторы
- •Квантификаторы
- •3.3.4. О квантификаторах: жадных и ленивых
- •«Жадные» и «ленивые» варианты квантификаторов
- •3.3.6. Обратные ссылки
- •3.3.7. Модификаторы
- •Модификаторы
- •3.4. Как оно всё работает
- •3.5. Чего не умеют регулярные выражения
- •4. Использование библиотеки RegExpr
- •4.1. Как делается поиск подстрок
- •4.2. Как делается поиск и замена
- •5. Порядок выполнения работы
- •6. Содержание отчета
- •7. Контрольные вопросы
- •Библиографический список
- •Варианты заданий
5. Порядок выполнения работы
Получить индивидуальный вариант задания.
Изучить теоретическую часть.
Обдумать алгоритм решения задачи с использованием регулярных выражений. Составить (на бумаге) необходимые регулярные выражения, отладить их с помощью программы TRegExpr.exe, входящей в дистрибутив библиотеки RegExpr.
Разработать программу на C++ или Delphi, отладить и показать преподавателю.
Оформить отчет.
6. Содержание отчета
Текст индивидуального задания.
Описание идеи решения задачи, используемые регулярные выражения.
Листинг программы.
Тестовые примеры, результаты их обработки, или скриншоты (2-3 шт).
7. Контрольные вопросы
Что означает термин «метасимвол» в регулярных выражениях, чем метасимвол отличается от обычных символов? Перечислите метасимволы, использующиеся в регулярных выражениях.
Как будет выглядеть шаблон регулярного выражения для поиска строки “x+y*(z–1)” (добавьте в нужные места экранирующий символ).
Что такое символьный класс? Для чего используются символьные классы? Что такое исключающий символьный класс?
Запишите символьный класс, в который входят цифры 0..9, латинские буквы A..Z большие и малые, символы _–.?|\/ .
Что такое квантификаторы? Перечислите виды квантификаторов и правила их записи.
Некий студент составил регэксп для выделения текста в двойных кавычках ‘«.*»’. Правильно? Какая строка будет найдена в тексте:
«Кало́ши», или «гало́ши» — непромокаемые, обычно резиновые, накладки, надеваемые на обувь.
Что найдет шаблон ‘<b>.*</b>’ в фрагменте html-текста:
“… <b>кварковые звезды</b> занимают промежуточное место между
<b> нейтронными звездами</b> и <b>черными дырами</b>… ” ?
Как изменить шаблон (вопр.7), чтобы он находил текст от <b> до ближайшего </b>.
Что такое группа (подвыражение)? Для чего применяются группы?
Что сохраняется в круглых скобках при применении выражения ‘^.*([0–9]+)’ к тексту “Copyright 2003” ?
Что сохраняется в круглых скобках при применении выражения ‘^.*([0–9]*)’ к тексту “Copyright 2003” ?
Что сохраняется в круглых скобках при применении выражения ‘^.*([0–9][0–9])’ к тексту “Copyright 2003” ?
Переведите на нормальный русский язык:
распарсить текст регэкспами,
регекс не матчит выражение в круглых скобках,
регекса уже отматчила цепочку “aаа”
выражение с квантификатором [^)(]+ было жадным и, возможно, «съело» слишком много
движок регексов нашел 2 токена
Библиографический список
Фридл, Дж. Регулярные выражения – СПб.: Питер, 2003. – 464 с.
(В свободном доступе на http://www.softtime.ru/info/fridl.php)
2. Применение конечных автоматов для поиска и распознавания подстрок: Методические указания к лабораторной работе по курсу «Теория автоматов» для студентов специальности 220100 / Курск. гос. техн. ун-т; Сост.: Е.Ю. Емельянова, И.Е. Чернецкая. Курск, 2005. 24 с.
3. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2001. – 736 с.: ил.
4. http://habrahabr.ru/blogs/regex/56765/[Электронный ресурс]
5. http://www.pcre.ru/ [Электронный ресурс]
6. http://habrahabr.ru/blogs/regex/[Электронный ресурс]
Приложение