The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

пpимеp регуляpных выржения на Си (regex example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: regex, example,  (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _ From : Vitaly E.Lavrov 2:5030/580 29 Nov 99 16:32:46 Subj : пpимеp регуляpных выржения на Си ________________________________________________________________________________ From: "Vitaly E.Lavrov" <lve@cit.aanet.ru> Dema Olyenyov <Dema.Olyenyov@p11.f9.n5088.z2.fidonet.org> wrote: >> > Если есть таковые. >> Идём File: libc.info, Node: Regular Expressions >> Тама есть POSIX REGEXP > А не кинет ли кто-нибудь примерчик как использовать регулярные > выражения на C. У меня немного не получается - оно как-то интересно > компилит выражения... Hу вот маленький пример. ------------------------------------- #include <stdio.h> #include <stdlib.h> #include <regex.h> #include <sys/socket.h> #include <netinet/in.h> #define MYREG1 "\\([0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9]*\\)/\\([0-9]*\\)" void regerr_prt(regex_t *preg,int err) { char buf[512]; regerror(err,preg,buf,sizeof(buf)-1); printf(__FUNCTION__":%s\n",buf); } regmatch_t rm[16]; main(int argn,char **argv) { regex_t reg1; int err,i,cntip; char buf[512]; if((err=regcomp(&reg1,MYREG1,0))) { regerr_prt(&reg1,err); abort(); } while(fgets(buf,sizeof(buf)-1,stdin)) { if(buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1]=0; if(regexec(&reg1,buf,3,&rm[0],0)) continue; { char c; int ipm; buf[rm[1].rm_eo] = 0; buf[rm[2].rm_eo] = 0; inet_aton(&buf[rm[1].rm_so],(struct in_addr *)&ipr[cntip].inetnum); ipr[cntip].inetnum = htonl(ipr[cntip].inetnum); ipm=atoi(&buf[rm[2].rm_so]); ipr[cntip].inetmask = 0xfffffffful << (32 - ipm); cntip++; buf[rm[i].rm_eo] = c; } } regfree(&reg1); return 0; --------------- Виталий --- ifmail v.2.14 * Origin: St. Petersburg State University of Aerospace In (2:5030/580@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру