🗊Презентация Программирование в среде UNIX. Библиотека PCRE

Нажмите для полного просмотра!
Программирование в среде UNIX. Библиотека PCRE, слайд №1Программирование в среде UNIX. Библиотека PCRE, слайд №2Программирование в среде UNIX. Библиотека PCRE, слайд №3Программирование в среде UNIX. Библиотека PCRE, слайд №4Программирование в среде UNIX. Библиотека PCRE, слайд №5Программирование в среде UNIX. Библиотека PCRE, слайд №6Программирование в среде UNIX. Библиотека PCRE, слайд №7Программирование в среде UNIX. Библиотека PCRE, слайд №8Программирование в среде UNIX. Библиотека PCRE, слайд №9Программирование в среде UNIX. Библиотека PCRE, слайд №10Программирование в среде UNIX. Библиотека PCRE, слайд №11Программирование в среде UNIX. Библиотека PCRE, слайд №12Программирование в среде UNIX. Библиотека PCRE, слайд №13Программирование в среде UNIX. Библиотека PCRE, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Программирование в среде UNIX. Библиотека PCRE. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Программирование в среде UNIX
Библиотека PCRE
Описание слайда:
Программирование в среде UNIX Библиотека PCRE

Слайд 2





Библиотека PCRE
Ранее мы рассмотрели REGEX для работы с регулярными выражениями, однако, REGEX не позволяет работать с различными кодировками, предоставляет достаточно ограниченные возможности по сравнению с теми, что предоставляет язык PERL.
Разработчик программ на C++  может  воспользоваться  библиотекой  Perl  Compatible Regular Expressions (PCRE), ее исходные коды и документация находятся на сайте http://www.pcre.org.
Описание слайда:
Библиотека PCRE Ранее мы рассмотрели REGEX для работы с регулярными выражениями, однако, REGEX не позволяет работать с различными кодировками, предоставляет достаточно ограниченные возможности по сравнению с теми, что предоставляет язык PERL. Разработчик программ на C++ может воспользоваться библиотекой Perl Compatible Regular Expressions (PCRE), ее исходные коды и документация находятся на сайте http://www.pcre.org.

Слайд 3





Библиотека PCRE
Библиотека PCRE – это набор функций реализующих работу с регулярными выражениями в формате языка Perl 5.
Данная библиотека была разработана для почтового сервера Exim, версия 1.0 была выпущена в ноябре 1997.
На сегодняшний день данная библиотека используется в таких открытых продуктах, как Apache web server, PHP, Postfix, и т. д.
Библиотека доступна для операционных систем POSIX(Linux/Unix), Mac OSX, Windows.
Описание слайда:
Библиотека PCRE Библиотека PCRE – это набор функций реализующих работу с регулярными выражениями в формате языка Perl 5. Данная библиотека была разработана для почтового сервера Exim, версия 1.0 была выпущена в ноябре 1997. На сегодняшний день данная библиотека используется в таких открытых продуктах, как Apache web server, PHP, Postfix, и т. д. Библиотека доступна для операционных систем POSIX(Linux/Unix), Mac OSX, Windows.

Слайд 4





Библиотека PCRE
Для начала работы с библиотекой нужно подключить заголовочный файл pcre.h
При компиляции нужно указывать опцию -l pcre (или -lpcre)
   Пример:
	gcc pcredemo.c -lpcre -o pcredemo
В Windows нужно к проекту подключить pcre.lib или pcre.dll
Описание слайда:
Библиотека PCRE Для начала работы с библиотекой нужно подключить заголовочный файл pcre.h При компиляции нужно указывать опцию -l pcre (или -lpcre) Пример: gcc pcredemo.c -lpcre -o pcredemo В Windows нужно к проекту подключить pcre.lib или pcre.dll

Слайд 5





Библиотека PCRE
Пример на Си
#include <stdio.h>
#include <string.h>
#include "pcre.h"
#define OVECCOUNT 30 /* должно быть кратно трем */
int main(int argc, char* argv[])
{
	pcre *re;
	const char *error;
	int erroffset;
	int ovector[OVECCOUNT];
	int rc;
Описание слайда:
Библиотека PCRE Пример на Си #include <stdio.h> #include <string.h> #include "pcre.h" #define OVECCOUNT 30 /* должно быть кратно трем */ int main(int argc, char* argv[]) { pcre *re; const char *error; int erroffset; int ovector[OVECCOUNT]; int rc;

Слайд 6





Библиотека PCRE
Пример на Си (продолжение)
// Задаем свой шаблон
char *regex = "^From: ([^@]+)@([^\r]+)";
// Определяем строку в которой будем искать
char *data = "From: regular.expressions@example.com\r\n";
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Задаем свой шаблон char *regex = "^From: ([^@]+)@([^\r]+)"; // Определяем строку в которой будем искать char *data = "From: regular.expressions@example.com\r\n";

Слайд 7





Библиотека PCRE
Пример на Си (продолжение)
// Компилируем выражение
re = pcre_compile(
	regex, 		/* the pattern */
	0, 		/* default options */
	&error, 		/* for error message */
	&erroffset, 	/* for error offset */
	NULL); 		/* use default character table */
if (! re)
{
       fprintf(stderr, "PCRE compilation failed at expression offset %d: %s\n", 	erroffset, error);
       return 1;
}
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Компилируем выражение re = pcre_compile( regex, /* the pattern */ 0, /* default options */ &error, /* for error message */ &erroffset, /* for error offset */ NULL); /* use default character table */ if (! re) { fprintf(stderr, "PCRE compilation failed at expression offset %d: %s\n", erroffset, error); return 1; }

Слайд 8





Библиотека PCRE
Пример на Си (продолжение)
// Выполняем поиск
rc = pcre_exec(
	re, /* the compiled pattern */
	NULL, /* no extra data - we didn't study the pattern */
	data, /* the subject string */
	strlen(data), /* the length of the subject */
	0, /* start at offset 0 in the subject */
	0, /* default options */
	ovector, /* output vector for substring information */
	OVECCOUNT); /* number of elements in the output vector */
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Выполняем поиск rc = pcre_exec( re, /* the compiled pattern */ NULL, /* no extra data - we didn't study the pattern */ data, /* the subject string */ strlen(data), /* the length of the subject */ 0, /* start at offset 0 in the subject */ 0, /* default options */ ovector, /* output vector for substring information */ OVECCOUNT); /* number of elements in the output vector */

Слайд 9





Библиотека PCRE
Пример на Си (продолжение)
// Обработка ошибок поиска
if (rc < 0) {
     switch(rc) {
	case PCRE_ERROR_NOMATCH:
	      printf("No match found in text\n");
	      break;
	/* More cases defined... */
	default:
	     printf("Match error %d\n", rc);
	     break;	
     } 
     return 1;
}
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Обработка ошибок поиска if (rc < 0) { switch(rc) { case PCRE_ERROR_NOMATCH: printf("No match found in text\n"); break; /* More cases defined... */ default: printf("Match error %d\n", rc); break; } return 1; }

Слайд 10





Библиотека PCRE
Пример на Си (продолжение)
// Получение найденных подстрок
if (rc < 3) {
 printf("Match did not catch all the groups\n");
 return 1;
}
/*ovector[0]..ovector[1] are the entire matched string*/
char *name_start = data + ovector[2];
int name_length = ovector[3] - ovector[2];
char *domain_start = data + ovector[4];
int domain_length = ovector[5] - ovector[4];
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Получение найденных подстрок if (rc < 3) { printf("Match did not catch all the groups\n"); return 1; } /*ovector[0]..ovector[1] are the entire matched string*/ char *name_start = data + ovector[2]; int name_length = ovector[3] - ovector[2]; char *domain_start = data + ovector[4]; int domain_length = ovector[5] - ovector[4];

Слайд 11





Библиотека PCRE
Пример на Си (продолжение)
// Получение найденных подстрок
/* Finally, print the match */
 printf("Mail from: %.*s domain: %.*s\n",
 name_length, name_start, domain_length, domain_start);
 return 0;
} //END main
Описание слайда:
Библиотека PCRE Пример на Си (продолжение) // Получение найденных подстрок /* Finally, print the match */ printf("Mail from: %.*s domain: %.*s\n", name_length, name_start, domain_length, domain_start); return 0; } //END main

Слайд 12





Библиотека PCRE
PCRE сохраняет индексы найденных подстрок в массив следующего формата
+-------------------------------------------------------------+ 
| Match 0  | Match 0 | Match 1 | Match 1 | ...    |
| start	       | end         | start       | end         |        |
+-------------------------------------------------------------+
Количество найденных подстрок содержится в rc
Описание слайда:
Библиотека PCRE PCRE сохраняет индексы найденных подстрок в массив следующего формата +-------------------------------------------------------------+ | Match 0 | Match 0 | Match 1 | Match 1 | ... | | start | end | start | end | | +-------------------------------------------------------------+ Количество найденных подстрок содержится в rc

Слайд 13





Библиотека PCRE
Существует так же библиотека PCRE для C++
pcrecpp
Описание слайда:
Библиотека PCRE Существует так же библиотека PCRE для C++ pcrecpp

Слайд 14





Дополнительные материалы
http://www.regular-expressions.info/pcre.html
http://haifux.org/lectures/156/PCRE-Perl_Compatible_Regular_Expression_Library.pdf
http://www.shtogrin.com/library/web/pcre/doc/pcre/
Описание слайда:
Дополнительные материалы http://www.regular-expressions.info/pcre.html http://haifux.org/lectures/156/PCRE-Perl_Compatible_Regular_Expression_Library.pdf http://www.shtogrin.com/library/web/pcre/doc/pcre/



Похожие презентации
Mypresentation.ru
Загрузить презентацию