Спросить
Войти

Анализ программ для работы с регулярными выражениями методом анализа иерархий

Автор: Израилев В.Я.

СИМВОЛ НАУКИ ISSN 2410-700X № 6 / 2018.

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

УДК 004.424

В.Я. Израилев

канд. техн. наук, доцент БГТУ г. Брянск, РФ E-mail: vizrailev@yandex.ru

АНАЛИЗ ПРОГРАММ ДЛЯ РАБОТЫ С РЕГУЛЯРНЫМИ ВЫРАЖЕНИЯМИ МЕТОДОМ АНАЛИЗА ИЕРАРХИЙ

Аннотация

В статье дается определение регулярных выражений и область их применения. Описываются назначение приложений для разбора, отладки и генерации регулярных выражений. Проводится обзор приложений для работы с регулярными выражениями. Производится сравнение приложений для работы с регулярными выражениями методом анализа иерархий.

В течение последнего десятилетия наблюдался неуклонный рост интереса к регулярным выражениям (РВ) [1]. Регулярные выражения — это конструкции, записанные в кратких строках, содержащих текст и специальные инструкции-команды, предназначенные для выполнения различных операций над строками [2].

Сегодня регулярные выражения представляют мощный инструмент для автоматизации различных процессов, связанных с обработкой текстовой информации. Приведем несколько примеров использования РВ. С помощью РВ можно выполнить поиск в текстовых документах, замену определенных частей документа. РВ могут использоваться для проверки входных данных на соответствие определенному шаблону, например, проверки корректности ввода адреса электронной почты при регистрации на некотором сайте, или определения формата данных некоторого текстового файла. С помощью РВ можно собирать статистические данные на основе анализа текстового файла, например, узнать на номера какого сотового оператора приходится наибольшее количество звонков некоторого абонента. РВ занимают одно из центральных мест во многих программах, работающих с текстовой информацией. Например, они могут быть использованы в программах для обеспечения безопасности данных банковской организации, или в программах, автоматизирующих процесс работы с большим количеством посетителей сайта.

С одной стороны, РВ существенно упрощают работу с текстовыми данными, но с другой требуют времени и знаний для их составления и отладки. Ошибки, допущенные при составлении РВ, могут привести к потере или порче данных, что в свою очередь повлечет финансовые, материальные и другие потери.

Поэтому для того, чтобы применять РВ в реальных программах их необходимо составить и отладить, проверить их работу на предмет соответствия полученного результата ожидаемому. Для этого существуют приложения, предоставляющие инструменты для составления и отладки РВ в безопасной среде. Кроме решения проблем, связанных с обеспечением правильности составления регулярных выражений, многие приложения могут помочь и в решении таких проблем как, уменьшение времени, затрачиваемого разработчиком программного обеспечения на составление и отладку РВ, а также обучение грамотному использованию РВ.

Работу, выполняемую разработчиком программного обеспечения над регулярными выражениями, можно разбить на следующие несколько этапов. При этом могут возникнуть трудности на каждом из них.

1) Составление РВ:

• изучение принципов работы с РВ;

• правильное составление РВ с точки зрения синтаксиса;

• выбор предпочтительного варианта РВ;

1 7 )

СИМВОЛ НАУКИ ISSN 2410-700X № 6 / 2018.

• повторение однотипных действий, требующих автоматизации.

2) Отладка РВ:

• нахождение и исправление ошибок, связанных с получением нужного результата работы РВ;

• оценка эффективности работы РВ;

• оптимизация РВ.

3) Использование РВ:

• оценка результатов работы РВ;

• сохранение результатов.

Чтобы определить наиболее удачные решения проблем, связанных с составлением, отладкой и использованием РВ и выделить основные функции разрабатываемого приложения, проведем обзор и сравнение уже существующих приложений.

Приложение Expresso - редактор регулярных выражений. Подходит как для начинающего пользователя в качестве обучающего инструмента, так и для опытного программиста или веб-дизайнера со знанием регулярных выражений. Expresso является приложением для настольного компьютера под платформу Windows, поддерживает один диалект регулярных выражений, а именно .NET. Позволяет загружать библиотеки, содержащие шаблоны (готовые регулярные выражения) и генерировать программный код на основе регулярных выражений [3].

Приложение The Regex Coach - простая утилита с возможностью пошагового выполнения регулярных выражений. Приложение поддерживает синтаксис PCRE (Perl-compatible regular expressions), который используется в Perl и PHP. Также очень похожий синтаксис регулярных выражений есть в Java и XML Schema. Является приложением для настольного компьютера как под платформу Windows, так и Linux, FreeDSD, Mac [4].

Веб-приложение regex101.com позволяет онлайн работать с регулярными выражениями, что очень удобно, так как не требует установки приложения на компьютер. Имеет довольно большую библиотеку готовых шаблонов РВ. Поддерживает синтаксис PCRE, позволяет генерировать программный код для PHP, JavaScript, Python, создавать юнит-тесты. Имеет отладчик регулярных выражений, который позволяет отследить пошагово за выполнением регулярного выражения [5].

Приложение для настольного компьютера под платформу Windows RegexBuddy - мощная утилита, поддерживающая большое количество диалектов регулярных выражений. Позволяет легко создавать регулярные выражения, которые соответствуют тому, что задумывалось, а также позволяет генерировать программный код для работы с РВ на многих языках программирования [6].

Для сравнения вышеописанных приложений воспользуемся методом анализа иерархий (МАИ). Идея метода состоит в структуризации задачи принятия решений путем построения многоуровневой иерархии, которая объединяет главную цель, критерии и альтернативы.

Основные достоинства метода:

• хорошая наглядность и интерпретируемость;

• метод устойчив к небольшим нарушениям согласованности суждений лица, принимающего решение (ЛПР);

• предоставляет процедуры оценки и сравнения альтернатив по неизмеримым, субъективным критериям;

Для построения иерархии выделим альтернативы и наиболее важные критерии, по которым будут оцениваться программы-аналоги. Иерархия для данной задачи представлена на рис. 1.

Используя метод парных сравнений, определим следующие показатели:

• приоритеты элементов Sj относительно главной цели;

• приоритеты критериев С относительно групп критериев Sj (степени важности критериев относительно заинтересованного лица);

• приоритеты альтернатив Xi относительно критериев Sj.

С этой целью построим необходимые матрицы парных сравнений и для каждой матрицы рассчитаем

СИМВОЛ НАУКИ ISSN 2410-700X № 6 / 2018.

нормализованный вектор приоритетов максимальное собственное число (Лтах) и отношение

согласованности (CR).

Режим отладки (S3)

Русифицированный интерфейс (S1)

Генерация кода ^2)

Наличие библиотек шаблонов

Подсветка синтаксиса (S5)

Подсветка найденных совпадений в тексте ^7)

Стоимость приложения^8)

Подробные комментарии к регулярному выражению ^6)

Выбор наилучшего аналога

regex101.com (X1)

The Regex Coach (X2)

Expresso (X3)

RegexBuddy (X4)

Рисунок 1 - Иерархическое представление задачи выбора наилучшего аналога

Матрица парных сравнений и полученные на ее основе оценки приоритетов элементов относительно главной цели приведены в таблице 1.

Таблица 1

Выбор наиболее влиятельного критерия

Какой из критериев оказывает наибольшее влияние на выбор лучшего аналога?

Si S2 S3 S4 S5 S6 S7 S8 W

Si 1 3 3 7 5 1 3 3 0.258

S2 1/3 1 1 3 3 1/3 3 1 0.114

S3 1/3 1 1 5 3 1 5 1 0.156

S4 1/7 1/3 1/5 1 1/3 1/5 1/3 1/5 0.029

S5 1/5 1/3 1/3 3 1 1/3 1 1/3 0.053

S6 1 3 1 5 3 1 5 3 0.222

S7 1/3 1/3 1/5 3 1 1/5 1 1/3 0.079

S8 1/3 1 1 5 3 1/3 3 1 0.09

W=8.766 CI=0.109 CR=0.078

Далее рассчитываются матрицы парных сравнений Хг- относительно критериев Sk и вычисляются на их основе приоритеты и оценки согласованности.

На основе полученных значений формируется матрица W1&2 приоритетов относительно критериев 1-го уровня - таблица 2.

Таблица 2

Общая матрица W1&2

Xi X2 X3 X* E

Si 0.25 0.25 0.25 0.25 1

S2 0.3 0.1 0.3 0.3 1

S3 0.37 0.131 0.066 0.434 1

СИМВОЛ НАУКИ ISSN 2410-700X № 6 / 2018.

Xi X2 Хз X4 I

S4 0.25 0.25 0.25 0.25 1

S5 0.375 0.125 0.125 0.375 1

S6 0.3 0.1 0.3 0.3 1

S7 0.375 0.125 0.125 0.375 1

Ss 0.3 0.3 0.3 0.1 1

Осуществим иерархический синтез с целью вычисления приоритетов альтернатив относительно главной цели.

А = Ш0,1 • Шх,г - вектор глобальных приоритетов. Получаем, вектор А = (0.307 0.169 0.226 0.299).

Итоговое распределение приоритетов приведено в табл. 3.

Таблица 3

Итоговое распределение прио ритетов

Xi G(Xi) Ранг

Xi 0.307 1

X2 0.169 4

Хз 0.226 3

X4 0.299 2

Таким образом, аналог Xi выбран, как наиболее предпочтительный.

Оценим общую согласованность иерархии. Для этого найдём значение глобального индекса согласованности:

С = CI0 +W0&1 • CI1=0,115 CS = CIS0 + W0&1 • CIS1=1.801 Вычисляем глобальный индекс согласованности: 0.064

R < 0,1 - иерархическая модель согласована. Таким образом, исходя из результатов сравнения программ-аналогов, наиболее предпочтительными оказываются приложение для настольного компьютера RegexBuddy и веб-приложение regex101.com. Функциональные возможности и особенности этих приложений можно взять за основу при разработке оригинальной программы для разбора, отладки и генерации регулярных выражений.

Список использованной литературы

1. Гойвертс, Я. Регулярные выражения. Сборник рецептов, 2-е издание / Я. Гойвертс, С. Левитан. - Пер. с англ. - СПб.: Символ-Плюс, 2015. - 704 с.
2. Форта, Б. Освой самостоятельно регулярные выражения. 10 минут на урок / Б. Форта. - Пер. с англ. - М.: Вильямс, 2005. - 184 с.
3. Ultrapico [Электронный ресурс]: Expresso Regular Expression Tool. - Режим доступа: http://www.ultrapico.com/Expresso.htm.
4. The Regex Coach [Электронный ресурс]: The Regex Coach - interactive regular expressions. - Режим доступа: http://www.weitz.de/regex-coach.
5. Regular expressions 101[Электронный ресурс]: Online regex tester and debugger: JavaScript, Python, PHP, and PCRE. - Режим доступа: https://regex101.com.
6. Regexbuddy [Электронный ресурс]: Learn, Create, Understand, Test, Use and Save Regular Expressions with RegexBuddy. - Режим доступа: https://www.regexbuddy.com.

© Израилев В.Я. , 2018

РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ МЕТОД АНАЛИЗА ИЕРАРХИЙ
Другие работы в данной теме:
Контакты
Обратная связь
support@uchimsya.com
Учимся
Общая информация
Разделы
Тесты