🗊Презентация Регулярные выражения. Библиотека regex

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

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

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


Слайд 1





Программирование в среде UNIX
Регулярные выражения
Библиотека regex
Описание слайда:
Программирование в среде UNIX Регулярные выражения Библиотека regex

Слайд 2





regex
Регулярные выражения являются способом описания текстовых шаблонов для сопоставления.
Библиотека regex предназначена для работы с регулярными выражениями на Си.
POSIX определяет два вида регулярных выражений: базовый и расширенный. Программы типа grep, sed и строчный редактор ed используют базовые регулярные выражения. Программы типа egrep и awk используют расширенные регулярные выражения.
Описание слайда:
regex Регулярные выражения являются способом описания текстовых шаблонов для сопоставления. Библиотека regex предназначена для работы с регулярными выражениями на Си. POSIX определяет два вида регулярных выражений: базовый и расширенный. Программы типа grep, sed и строчный редактор ed используют базовые регулярные выражения. Программы типа egrep и awk используют расширенные регулярные выражения.

Слайд 3





regex
Функции входящие в библиотеку regex дают вам возможность использовать в своих программах любой вид
int regcomp(regex_t *preg, const char *regex, int cflags);
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
size_t regerror(int errcode, const regex_t *preg,
 char *errbuf, size_t errbuf_size);
void regfree(regex_t *preg);
Описание слайда:
regex Функции входящие в библиотеку regex дают вам возможность использовать в своих программах любой вид int regcomp(regex_t *preg, const char *regex, int cflags); int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags); size_t regerror(int errcode, const regex_t *preg,  char *errbuf, size_t errbuf_size); void regfree(regex_t *preg);

Слайд 4





regex
Чтобы сопоставить регулярное выражение, нужно сначала откомпилировать строчную версию регулярного выражения.
Компиляция преобразует регулярное выражение во внутренний формат. 
Затем откомпилированная форма исполняется для строки для проверки, совпадает ли она с первоначальным регулярным выражением.
Описание слайда:
regex Чтобы сопоставить регулярное выражение, нужно сначала откомпилировать строчную версию регулярного выражения. Компиляция преобразует регулярное выражение во внутренний формат. Затем откомпилированная форма исполняется для строки для проверки, совпадает ли она с первоначальным регулярным выражением.

Слайд 5





regex
int regcomp(regex_t *preg, const char *regex, int cflags)
Компилирует регулярное выражение regex во внутреннее представление, сохраняя его в структуре regex_t, на которую указывает preg
cflags контролирует процесс компиляции, ее значение равно 0 или побитовому ИЛИ одного или более флагов из табл
Описание слайда:
regex int regcomp(regex_t *preg, const char *regex, int cflags) Компилирует регулярное выражение regex во внутреннее представление, сохраняя его в структуре regex_t, на которую указывает preg cflags контролирует процесс компиляции, ее значение равно 0 или побитовому ИЛИ одного или более флагов из табл

Слайд 6





regex
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags)
Выполняет откомпилированное регулярное выражение в *preg в строке string
eflags контролирует способ выполнения; ее значение равно 0 или побитовому ИЛИ одного или более флагов из табл
Флаги REG_NEWLINE, REG_NOTBOL и REG_NOTEOL взаимодействуют друг с другом.
Описание слайда:
regex int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags) Выполняет откомпилированное регулярное выражение в *preg в строке string eflags контролирует способ выполнения; ее значение равно 0 или побитовому ИЛИ одного или более флагов из табл Флаги REG_NEWLINE, REG_NOTBOL и REG_NOTEOL взаимодействуют друг с другом.

Слайд 7





regex
Когда в cflags не включен REG_NEWLINE, символ конца строки действует в качестве обычного символа. С ним может быть сопоставлен метасимвол '.' (любой символ), а также дополненные списки символов ('[^...]'). При этом $ не сопоставляется немедленно с началом вставленного символа новой строки, а ^ не сопоставляется немедленно с его концом.
Когда в eflags установлен REG_NOTBOL, оператор ^ не соответствует началу строки. Это полезно, когда параметр string является адресом символа в середине сопоставляемого текста.
Сходным образом, когда в eflags установлен REG_NOTEOL, оператор $ не соответствует концу строки.
Описание слайда:
regex Когда в cflags не включен REG_NEWLINE, символ конца строки действует в качестве обычного символа. С ним может быть сопоставлен метасимвол '.' (любой символ), а также дополненные списки символов ('[^...]'). При этом $ не сопоставляется немедленно с началом вставленного символа новой строки, а ^ не сопоставляется немедленно с его концом. Когда в eflags установлен REG_NOTBOL, оператор ^ не соответствует началу строки. Это полезно, когда параметр string является адресом символа в середине сопоставляемого текста. Сходным образом, когда в eflags установлен REG_NOTEOL, оператор $ не соответствует концу строки.

Слайд 8





regex
Когда в cflags включен REG_NEWLINE, то:
Символ конца строки не соответствует '.' или дополненному списку символов.
Оператор ^ всегда соответствует положению непосредственно за вставленным символом конца строки независимо от установки REG_BOL.
Оператор $ всегда соответствует положению непосредственно перед вставленным символом конца строки независимо от установки REG_EOL.
Когда вы осуществляете построчный ввод/вывод, как в случае с grep, можно не включать REG_NEWLINE в cflags. Если в буфере несколько строк, и каждую из них нужно рассматривать как отдельную, с сопоставлением ^ и $, тогда следует включить REG_NEWLINE.
Описание слайда:
regex Когда в cflags включен REG_NEWLINE, то: Символ конца строки не соответствует '.' или дополненному списку символов. Оператор ^ всегда соответствует положению непосредственно за вставленным символом конца строки независимо от установки REG_BOL. Оператор $ всегда соответствует положению непосредственно перед вставленным символом конца строки независимо от установки REG_EOL. Когда вы осуществляете построчный ввод/вывод, как в случае с grep, можно не включать REG_NEWLINE в cflags. Если в буфере несколько строк, и каждую из них нужно рассматривать как отдельную, с сопоставлением ^ и $, тогда следует включить REG_NEWLINE.

Слайд 9





regex
size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
Преобразует ошибку, возвращенную regcomp() или regexec(), в удобочитаемую строку.
Описание слайда:
regex size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) Преобразует ошибку, возвращенную regcomp() или regexec(), в удобочитаемую строку.

Слайд 10





regex
void regfree(regex_t *preg)
Освобождает динамическую память, используемую откомпилированным регулярным выражением в *preg.
Описание слайда:
regex void regfree(regex_t *preg) Освобождает динамическую память, используемую откомпилированным регулярным выражением в *preg.

Слайд 11





regex
regcomp() и regexec() возвращают 0, если они успешны, или определенный код ошибки, если нет.
Описание слайда:
regex regcomp() и regexec() возвращают 0, если они успешны, или определенный код ошибки, если нет.

Слайд 12





Пример
#include <regex.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>

char* paste_env(char *str)
{
    char *env;
    char buf[256];
    regex_t preg;
    regmatch_t pm;
    char *newstr;
    int len;
Описание слайда:
Пример #include <regex.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <malloc.h> char* paste_env(char *str) { char *env; char buf[256]; regex_t preg; regmatch_t pm; char *newstr; int len;

Слайд 13





Пример
    regcomp( &preg, "\\$\\w\\+\\b", REG_ICASE );
    while ( regexec(&preg, str, 1, &pm, REG_NOTBOL) == 0 )
    {
	memset(buf, '\0', 256);
	strncpy(buf,&str[pm.rm_so]+1,(pm.rm_eo-pm.rm_so-1 < 256)?pm.rm_eo-pm.rm_so-1:254);
	env = getenv(buf); // check for empty
	len = strlen(str)-strlen(buf)+strlen(env);
	newstr=malloc(len);
	memset(newstr, '\0', len);
	strncpy(newstr,str,pm.rm_so);
	strncat(newstr,env,strlen(env));
	strncat(newstr,&str[pm.rm_eo],strlen(str)-pm.rm_eo);
	str = newstr;
    }
    regfree(&preg);

    return newstr;
}
Описание слайда:
Пример regcomp( &preg, "\\$\\w\\+\\b", REG_ICASE ); while ( regexec(&preg, str, 1, &pm, REG_NOTBOL) == 0 ) { memset(buf, '\0', 256); strncpy(buf,&str[pm.rm_so]+1,(pm.rm_eo-pm.rm_so-1 < 256)?pm.rm_eo-pm.rm_so-1:254); env = getenv(buf); // check for empty len = strlen(str)-strlen(buf)+strlen(env); newstr=malloc(len); memset(newstr, '\0', len); strncpy(newstr,str,pm.rm_so); strncat(newstr,env,strlen(env)); strncat(newstr,&str[pm.rm_eo],strlen(str)-pm.rm_eo); str = newstr; } regfree(&preg); return newstr; }

Слайд 14





Пример
int main ()
{
    printf(paste_env("$HOME text $PWD $HOME\n"));
    return 0;
}
Описание слайда:
Пример int main () { printf(paste_env("$HOME text $PWD $HOME\n")); return 0; }

Слайд 15





Дополнительные материалы
http://wm-help.net/lib/b/book/2075737573/292
Описание слайда:
Дополнительные материалы http://wm-help.net/lib/b/book/2075737573/292



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