Средство тестирования регулярных выражений (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
 
(не показано 9 промежуточных версии 3 участников)
Строка 2: Строка 2:
 
|name=Средство тестирования регулярных выражений
 
|name=Средство тестирования регулярных выражений
 
|mentor=Яковлев Виктор
 
|mentor=Яковлев Виктор
|mentor_login={{URLENCODE:{{REVISIONUSER}}|WIKI}}
+
|mentor_login={{URLENCODE:Vyacovlev|WIKI}}
 
|semester=Весна 2015
 
|semester=Весна 2015
 
|course=1
 
|course=1
 
|summer=
 
|summer=
 
|categorize=yes
 
|categorize=yes
 +
|is_archived=yes
 
}}
 
}}
  
Строка 28: Строка 29:
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===
2
+
# Работа с регулярными выражениями
 +
# Разработка GUI-приложения с использованием современного API
  
 
=== Какие начальные требования? ===
 
=== Какие начальные требования? ===
3
+
# Знание объектно-ориентированного программирования на языке C++
 +
# Знание технического английского (хотя бы со словарем или переводчиком)
  
 
=== Какие будут использоваться технологии? ===
 
=== Какие будут использоваться технологии? ===
4
+
Предполагается реализациия проекта с использования набора библиотек Qt (http://qt-project.org).
  
 
=== Темы вводных занятий ===
 
=== Темы вводных занятий ===
5
+
# Вводный мастер-класс по созданию простого GUI-приложения с использованием Qt
 +
# Сборка RPM-пакетов
 +
 
  
 
=== Направления развития ===
 
=== Направления развития ===
6
+
Можно реализовать визуализацию структуры регулярного выражения.
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
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) некорректные управляющие символы.

Чему вы научитесь?

  1. Работа с регулярными выражениями
  2. Разработка GUI-приложения с использованием современного API

Какие начальные требования?

  1. Знание объектно-ориентированного программирования на языке C++
  2. Знание технического английского (хотя бы со словарем или переводчиком)

Какие будут использоваться технологии?

Предполагается реализациия проекта с использования набора библиотек Qt (http://qt-project.org).

Темы вводных занятий

  1. Вводный мастер-класс по созданию простого GUI-приложения с использованием Qt
  2. Сборка RPM-пакетов


Направления развития

Можно реализовать визуализацию структуры регулярного выражения.

Критерии оценки

  • 4 балла. Реализована программа, которая по заданному корректному регулярному выражению выдает список найденных вхождений в некотором текстовом файле.
  • 5 баллов. Возможность редактирования текста и поиска вхождений в текстовом редакторе.
  • 6 баллов. Найденные вхождения текста выдаются не списком, а выделяются (цветом, подчеркиванием и т. д.) в текстовом редакторе
  • 7 баллов. Выделяются не только вхождения найденного текста, но и его обособленные части

Визуализация структуры регулярного выражения: +2 балла.

Оформление программы в виде инсталлятора (Windows) или RPM/DEB пакета (Linux): +1 балл.