Средство тестирования регулярных выражений (проект) — различия между версиями
Vyacovlev (обсуждение | вклад) (Новая страница, с помощью формы Новый_проект) |
|||
(не показано 10 промежуточных версии 3 участников) | |||
Строка 2: | Строка 2: | ||
|name=Средство тестирования регулярных выражений | |name=Средство тестирования регулярных выражений | ||
|mentor=Яковлев Виктор | |mentor=Яковлев Виктор | ||
− | |mentor_login={{URLENCODE: | + | |mentor_login={{URLENCODE:Vyacovlev|WIKI}} |
|semester=Весна 2015 | |semester=Весна 2015 | ||
|course=1 | |course=1 | ||
|summer= | |summer= | ||
|categorize=yes | |categorize=yes | ||
+ | |is_archived=yes | ||
}} | }} | ||
=== Что это за проект? === | === Что это за проект? === | ||
− | 1 | + | ==== Регулярные выражения ==== |
+ | |||
+ | Регулярные выражения – это формальный язык для описания шаблона поиска и осуществления замен в текстах. | ||
+ | |||
+ | Пример: регулярное выражение (в синтаксисе Qt) | ||
+ | |||
+ | ((http|https)://)?((www\.)?[a-zA-Z0-9\-_]+\.ru)(/[a-zA-Z0-9\-_/]+)? | ||
+ | |||
+ | определяет множество URL веб-страниц в зоне «.ru», которые находятся только на доменах второго уровня, возможно с префиксом «www.». Результатом упешного поиска является список строк, первая из которых является найденной в тексте подстрокой, а остальные – отдельные значимые фрагменты этой подстроки, которые в регулярном выражении задаются круглыми скобками. Регулярные выражения повсеместно используются во всех задачах, так или иначе связанных с обработкой текста. | ||
+ | |||
+ | ==== Постановка задачи ==== | ||
+ | Требуется реализовать инструмент (кроссплатформенный, то есть Windows+Linux) для тестирования регулярных выражений. В качестве примера реализации можно смотреть kregexpeditor из состава KDE3 (в любом старом дистрибутиве Linux середины 2000-х годов, например AltLinux 5.0 или openSUSE версии до 11.2). | ||
+ | |||
+ | Окно программы, полученной в результате выполнения проекта, содержит строку редактирования регулярного выражения и область текста для тестирования. При вводе строки регулярного выражения, выполняется поиск сопоставлений в тексте, при этом найденные сопоставления подчеркиваются, а отдельные их фрагменты выделяются разными цветами. | ||
+ | |||
+ | Программа должна выполнять простую проверку корректности строки регулярного выражения и диагностировать следующие синтаксические ошибки: 1) непарные скобки; 2) некорректные управляющие символы. | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
− | + | # Работа с регулярными выражениями | |
+ | # Разработка GUI-приложения с использованием современного API | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
− | + | # Знание объектно-ориентированного программирования на языке C++ | |
+ | # Знание технического английского (хотя бы со словарем или переводчиком) | ||
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
− | + | Предполагается реализациия проекта с использования набора библиотек Qt (http://qt-project.org). | |
=== Темы вводных занятий === | === Темы вводных занятий === | ||
− | + | # Вводный мастер-класс по созданию простого GUI-приложения с использованием Qt | |
+ | # Сборка RPM-пакетов | ||
+ | |||
=== Направления развития === | === Направления развития === | ||
− | + | Можно реализовать визуализацию структуры регулярного выражения. | |
=== Критерии оценки === | === Критерии оценки === | ||
− | 7 | + | * 4 балла. Реализована программа, которая по заданному корректному регулярному выражению выдает список найденных вхождений в некотором текстовом файле. |
+ | * 5 баллов. Возможность редактирования текста и поиска вхождений в текстовом редакторе. | ||
+ | * 6 баллов. Найденные вхождения текста выдаются не списком, а выделяются (цветом, подчеркиванием и т. д.) в текстовом редакторе | ||
+ | * 7 баллов. Выделяются не только вхождения найденного текста, но и его обособленные части | ||
+ | |||
+ | Визуализация структуры регулярного выражения: '''+2 балла'''. | ||
+ | |||
+ | Оформление программы в виде инсталлятора (Windows) или RPM/DEB пакета (Linux): '''+1 балл'''. |
Текущая версия на 10:52, 20 октября 2015
Ментор | Яковлев Виктор |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Внимание! Данный проект находится в архиве и реализован не будет. |
Что это за проект?
Регулярные выражения
Регулярные выражения – это формальный язык для описания шаблона поиска и осуществления замен в текстах.
Пример: регулярное выражение (в синтаксисе Qt)
((http|https)://)?((www\.)?[a-zA-Z0-9\-_]+\.ru)(/[a-zA-Z0-9\-_/]+)?
определяет множество URL веб-страниц в зоне «.ru», которые находятся только на доменах второго уровня, возможно с префиксом «www.». Результатом упешного поиска является список строк, первая из которых является найденной в тексте подстрокой, а остальные – отдельные значимые фрагменты этой подстроки, которые в регулярном выражении задаются круглыми скобками. Регулярные выражения повсеместно используются во всех задачах, так или иначе связанных с обработкой текста.
Постановка задачи
Требуется реализовать инструмент (кроссплатформенный, то есть Windows+Linux) для тестирования регулярных выражений. В качестве примера реализации можно смотреть kregexpeditor из состава KDE3 (в любом старом дистрибутиве Linux середины 2000-х годов, например AltLinux 5.0 или openSUSE версии до 11.2).
Окно программы, полученной в результате выполнения проекта, содержит строку редактирования регулярного выражения и область текста для тестирования. При вводе строки регулярного выражения, выполняется поиск сопоставлений в тексте, при этом найденные сопоставления подчеркиваются, а отдельные их фрагменты выделяются разными цветами.
Программа должна выполнять простую проверку корректности строки регулярного выражения и диагностировать следующие синтаксические ошибки: 1) непарные скобки; 2) некорректные управляющие символы.
Чему вы научитесь?
- Работа с регулярными выражениями
- Разработка GUI-приложения с использованием современного API
Какие начальные требования?
- Знание объектно-ориентированного программирования на языке C++
- Знание технического английского (хотя бы со словарем или переводчиком)
Какие будут использоваться технологии?
Предполагается реализациия проекта с использования набора библиотек Qt (http://qt-project.org).
Темы вводных занятий
- Вводный мастер-класс по созданию простого GUI-приложения с использованием Qt
- Сборка RPM-пакетов
Направления развития
Можно реализовать визуализацию структуры регулярного выражения.
Критерии оценки
- 4 балла. Реализована программа, которая по заданному корректному регулярному выражению выдает список найденных вхождений в некотором текстовом файле.
- 5 баллов. Возможность редактирования текста и поиска вхождений в текстовом редакторе.
- 6 баллов. Найденные вхождения текста выдаются не списком, а выделяются (цветом, подчеркиванием и т. д.) в текстовом редакторе
- 7 баллов. Выделяются не только вхождения найденного текста, но и его обособленные части
Визуализация структуры регулярного выражения: +2 балла.
Оформление программы в виде инсталлятора (Windows) или RPM/DEB пакета (Linux): +1 балл.