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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Яковлев Виктор
Учебный семестр Весна 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. Знание технического английского (хотя бы со словарем или переводчиком)

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

4

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

5

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

6

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

7