Автор: Жабин В.В.
Источник: Вестник Тамбовского университета. Серия: Естественные и технические науки. Выпуск № 1 / том 17 / 2012
Жабин В.В. - Реализация поисковых запросов на языке регулярных выражений В статье рассматривается реализация поисковых запросов на основе регулярных выражений с использованием серверного языка PHP.
Проблемы поиска информации в базах данных заслуживают самого серьезного внимания. Поиск информации в базах данных осуществляется с помощью фильтров и запросов. Рассмотрим пример поискового запроса с использованием фильтра в базе данных «Каталог» (рис. 1).Поиск осуществляется по 46 общекультурным и профессиональным компетенциям в двух группах. Пользователю необходимо настроить фильтр на конкретную группу, и осуществить стандартный поиск путем ввода в текстовое поле цифры (по номеру компетенции внутри группы).
Схема описанного стандартного поиска представлена на рис. 2. Пользователь вводит поисковый запрос в форму,технология ajax производит отправку данного предложения на сервер PHP, где происходит прием данных, после чего разобранные данные отправляются в базу MySQL.Мы считаем, что данный метод организации поиска является неудобным для пользователя и может быть усовершенствован путем использования регулярных выражений (рис. 3).
Пользователь вводит поисковый запрос в форму, технология ajax производит отправку данного предложения на сервер PHP, где происходит прием данных, данные передаются на обработку регулярному выражению, после чего разобранные данные отправляются в базу MySQL. Регулярное выражение – это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец, состоящая из символов и метасимволов и задающая правило поиска.
Регулярные выражения произвели прорыв в электронной обработке текстов в конце XX в. Многие современные языки программирования – PHP, Perl, Javascript, Ruby имеют встроенную поддержку регулярных выражений. Приведем некоторые сведения о синтаксисе регулярных выражений – это обычные символы (литералы) и специальные символы (метасимволы). Большинство символов в регулярном выражении представляют сами себя за исключением специальных символов [ ] \ ^ $ . | ? * + ( ) { }, которые могут быть предварены символом \ (обратная косая черта) («экранированы», «защищены») для представления их самих в качестве символов текста. Можно экранировать целую последовательность символов, заключив ее между \Q и \E.
Аналогично могут быть представлены другие специальные символы (набор символов, требующих экранирования, может отличаться в зависимости от конкретной реализации). Часть символов, которые в той или иной реализации не требуют экранирования (например, угловые скобки < >), могут быть экранированы из соображений удобочитаемости. Теперь новый поиск в базе данных выглядит следующим образом (рис. 4). Поиск в программе по регулярному выражению. Пользователь вводит в поле произвольное предложение (рис. 4). В итоге после обработки и передачи данных пользователю результат можно увидеть на рис. 5
Приведем фрагмент кода на регулярных выражениях на языке PHP
На кафедре информатики информационных технологий Тамбовского государственного университета им. Г.Р. Державина [1]разработана база данных «Аннотированный каталог научных публикаций по охране интеллектуальной собственности» на основе вышеизложенного подхода.
Использование регулярных выражений позволяет пользователю создавать сложные запросы без использования фильтров, при этом порядок слов в запросе не имеет значения.