Средство тестирования регулярных выражений (проект) — различия между версиями
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 балл.