Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya (1).doc
Скачиваний:
25
Добавлен:
10.02.2016
Размер:
846.34 Кб
Скачать

1.2 Регулярные выражения

Регулярные выражения – это один из способов поиска подстрок (соответствий) в строках. Осуществляется это с помощью просмотра строки в поисках некоторого шаблона. Общеизвестным примером могут быть символы «*» и «?», используемые в командной строке DOS. Первый из них заменяет ноль или более произвольных символов, второй же – один произвольный символ. Так, использование шаблона

поиска типа "text?.*" найдет файлы textf.txt, text1.asp и другие аналогичные, но не найдет text.txt или text.htm. Если в DOS использование регулярных выражений было крайне ограничено, то в других местах (то есть операционных системах и языках программирования) они почти достигли уровня высокого искусства. «Почти» потому, что предметы высокого искусства практически невозможно употреблять в повседневной жизни. Более сложным примером применения регулярных выражений может быть удаление мусора, внесенного MicrosoftWord при сохранении документа в формате HTML. Разработчики Word умудрились все сделать по-своему, в результате чего HTML-документ порой становится больше исходного DOC-файла за счет огромного количества понятных только IE5 тегов, вычистить которые вручную нет никакой возможности.

Особенно полезны регулярные выражения в программах, написанных на скриптовых (интерпретируемых) языках, например, VBScript, JScript и Perl. Из-за того, что весь их код интерпретируется, разбор текстовых строк и выражений выполняется неприемлемо медленно. Применение регулярных выражений дает значительное увеличение производительности, поскольку библиотеки, интерпретирующие регулярные выражения, обычно пишутся на низкоуровневых высокопроизводительных языках (С, С++, Assembler). Например, в MSDN с помощью регулярных выражений осуществляется динамическое форматирование HTML-страниц.

Обычно с помощью регулярных выражений выполняются три действия:

- Проверка наличия соответствующей шаблону подстроки.

- Поиск и выдача пользователю соответствующих шаблону подстрок.

- Замена соответствующих шаблону подстрок.

Наибольшее развитие регулярные выражения получили в Perl, где их поддержка встроена непосредственно в интерпретатор. В других языках, как правило, используются реализующие регулярные выражения дополнения и модули сторонних разработчиков. В VBScript и JScript используется объект RegExp, в С/С++ можно использовать библиотеки Regex++ и PCRE (PerlCompatibleRegularExpression), а также ряд менее известных библиотек, для Java существует целый набор расширений – ORO , RegExp, Rex и gnu.regexp.

Особняком стоит Microsoft Visual Studio.Net, существующая пока только в beta-версии, но уже удостоившаяся массы публикаций и разговоров. Реализация регулярных выражений в .Net (Regex) полностью совместима с Perl, и даже несколько расширена. Все, что говорится про Perl, вполне применимо к .Net. В C# имеется большой функционал работы и большое количество различных примеров регулярных выражений.

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

Синтаксис регулярных выражений до сих пор не полностью стандартизован. Существует POSIX-версия регулярных выражений, полностью описывающая стандарт синтаксиса для POSIX. Но версия Perl шире и более гибка, чем и объясняется ее широкая распространенность. Большинство библиотек по синтаксису и используемым метасимволам совместимо с Perl, поэтому имеет смысл начать разбираться с использованием регулярных выражений на примере именно этого языка.

  1. РАЗРАБОТКА ПРОГРАММЫ

2.1 Задание

Разработать программу на платформе .Net. Графический интерфейс реализовать с использованием Windows.Forms.

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

Сформировать и согласовать с преподавателем представление перечня объектов в виде XML-документа. Количество признаков у каждого объекта - не менее десяти, вложенность признаков - не менее трех. Количество необязательных признаков - не менее четырех. Количество признаков, записанных в XML как атрибуты - не менее трех.

Среди признаков объекта выбрать три признака, по которым будут производиться указанные ниже действия.

Реализовать следующие операции:

1. Чтение данных из XML-файла.

2. Добавление новых элементов в загруженные XML-данные.

3.Удалени элементов

4.Отбор по выбранным признакам.

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

Для моего варианта :

1. Адреса электронной почты заключаются в круглые скобки.

2. Некорректно записанные элементы времени заменяются текущими значениями (например, 12:65:05 меняется на 12:39:05).

2.2 Разработка XML обработчика

2.2.1 Файл исходных данных XML

Для данной работы организуем Xml- файл каталог, в котором перечислены фильмы, каждая запись имеет такие признаки :

- Фильм;

- Продюсер;

- Актёры;

- Жанр;

- Год;

- Страна;

- Формат.

Данный файл мы напишем с помощью VisualStudio. Он имеет вид:

<?xml version="1.0" encoding="UTF-8"?>

<DataSet>

<Фильм>Константин</Фильм>

<Продюсер>Френсис Лоуренс</Продюсер>

<Актёры>Скотт Спидман, Генри Гибсон, Дэвид Селби, Киано Риз,

Александр Гришаев, Ана Торрент, Спенсер Лок</Актёры>

<Жанр>Мистика, Фантастика, Триллер</Жанр>

<Год>2005</Год>

<Старан>США</Страна>

<Качество>DVDrip</Качёство>

</DataSet>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]