УДК 378
РЕАЛИЗАЦИЯ ПОИСКОВЫХ ЗАПРОСОВ НА ЯЗЫКЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ
© В.В. Жабин
Ключевые слова: база данных; регулярные выражения; поисковый запрос; PHP; Ajax; MySQL.
В статье рассматривается реализация поисковых запросов на основе регулярных выражений с использованием серверного языка PHP.
Проблемы поиска информации в базах данных заслуживают самого серьезного внимания. Поиск информации в базах данных осуществляется с помощью фильтров и запросов.
Рассмотрим пример поискового запроса с использованием фильтра в базе данных «Каталог» (рис. 1).
Поиск осуществляется по 46 общекультурным и профессиональным компетенциям в двух группах. Пользователю необходимо настроить фильтр на конкретную группу, и осуществить стандартный поиск путем ввода в текстовое поле цифры (по номеру компетенции внутри группы).
Схема описанного стандартного поиска представлена на рис. 2.
Пользователь вводит поисковый запрос в форму, технология ajax производит отправку данного предложения на сервер PHP, где происходит прием данных, после чего разобранные данные отправляются в базу MySQL.
Мы считаем, что данный метод организации поиска является неудобным для пользователя и может быть усовершенствован путем использования регулярных выражений (рис. 3).
Компетенции
Рис. 1. Скриншот поискового запроса с использованием фильтра
Рис. 2. Схема стандартного поискового запроса
Разбор предложения с помошью регулярных выражений
MvSQL
Рис. 3. Усовершенствованная схема поискового запроса с использованием регулярных выражений
ПОИСК: <л 1 общекультурные
X і
Рис. 4. Скриншот поискового запроса с использованием регулярных выражений
№ Название дисциплины Семестр Общеку льтурнь ІЄ Ссылка на файл
1 Алгоритмы и структуры данных Э семестр ОК-1 ОТКРЫТЬ
Рис. 5. Результат поискового запроса на основе регулярного выражения
Пользователь вводит поисковый запрос в форму, технология ajax производит отправку данного предложения на сервер PHP, где происходит прием данных, данные передаются на обработку регулярному выражению, после чего разобранные данные отправляются в базу MySQL.
Регулярное выражение - это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец, состоящая из символов и метасимволов и задающая правило поиска.
Регулярные выражения произвели прорыв в электронной обработке текстов в конце XX в. Многие современные языки программирования - PHP, Perl, Javascript, Ruby имеют встроенную поддержку регулярных выражений. Приведем некоторые сведения о синтаксисе регулярных выражений - это обычные символы (литералы) и специальные символы (метасимволы). Большинство символов в регулярном выражении представляют сами себя за исключением специальных символов [ ] \ Л $ . | ? * + ( ) { }, которые могут быть предварены символом \ (обратная косая черта) («экранированы», «защищены») для представления их самих в качестве символов текста. Можно экранировать целую последовательность символов, заключив ее между \Q и \E.
Аналогично могут быть представлены другие специальные символы (набор символов, требующих экранирования, может отличаться в зависимости от конкретной реализации). Часть символов, которые в той или иной реализации не требуют экранирования (например, угловые скобки < >), могут быть экранированы из соображений удобочитаемости.
Теперь новый поиск в базе данных выглядит следующим образом (рис. 4).
Поиск в программе по регулярному выражению.
Пользователь вводит в поле произвольное предложение (рис. 4).
В итоге после обработки и передачи данных пользователю результат можно увидеть на рис. 5.
Приведем фрагмент кода на регулярных выражениях на языке PHP
if($YearOneParams== 1){
Syear = $found1 [0];
}elseif($YearTwoParams==1){
SstrSE = explode("-",$found2[0]);
$start_year = ($strSE[0]>$strSE[1])
? $ start_y ear= $ strSE[1 ]
: $start_year=$strSE[0]
$end_year = ($strSE[0]<$strSE[1])
? $end_year=$strSE[1]
: $end_year=$strSE[0]
} ;
На кафедре информатики информационных технологий Тамбовского государственного университета им. Г.Р. Державина [1] разработана база данных «Аннотированный каталог научных публикаций по охране интеллектуальной собственности» на основе вышеизложенного подхода.
ВЫВОДЫ
Использование регулярных выражений позволяет пользователю создавать сложные запросы без использования фильтров, при этом порядок слов в запросе не имеет значения. Ознакомиться с результатами работы можно по адресу katalog.kiit-tsu.ru/index.
ЛИТЕРАТУРА
1. Лыскова В.Ю. Кафедра информатики и информационных технологий // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2009. Т. 14. Вып. 5. Ч. 1. С. 851-871.
Поступила в редакцию 16 ноября 2011 г.
Zhabin V.V. REALIZATION OF SEARCH INQUIRIES IN LANGUAGE REGULAR EXPRESSIONS
In article the realization of search inquiries on the basis of regular expressions with use of server language PHP is considered.
Key words: database; regular expressions; search inquiry; PHP; Ajax; MySQL.