Re: lug-bg: POSIX regex
- Subject: Re: lug-bg: POSIX regex
- From: George Danchev <danchev@xxxxxxxxx>
- Date: Thu, 18 Sep 2003 21:07:51 +0300
On Thursday 18 September 2003 20:44, Nikolay Mitev wrote:
> Здравейте,
>
> peyo wrote:
> >Здрвасти отново. Аз днес май ми е ден да ми е накриво:((
> >Значи пиша едно софтуерче на С за Линукс, което ужасно ще ми облекчи
> > живота. Въпроса е, че е за доста слаба машина и най-читавият вариант е да
> > се използва С за целта + regex. Обаче въпросното regex е нещо, което се
> > случва на други хора. Та трябва да използвам POSIX regex functions -
> > демек да се сгърча. И не мога и не мога да измисля - като ми падне
> > стринг, как да напиша regex-a така, че да хване дали това е ИП адрес или
> > не е. Само да ви кажа, че май тук ne e kato v Perl regex. пробвам
> > \d+.\d+\d+.\d+, (1-254).(1-254).(1-254). (1-254) ама не...
> >Та може ли някои по-запознат да ми окаже HEEELP!?
> >10x in advance( да не си помислите, че не знам англически)
>
> Направо цяла програмка получаваш :-)
>
> ---------8<--------cut here------------------
добавяме ;-)
#include <stdio.h>
> #include <regex.h>
>
> /* returns 0 if string is a valid ip
>
> > 0 otherwise
>
> */
>
> int is_ip (const char *string) {
> int status;
> regex_t re;
>
> const char *pattern =
> "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}";
тука май имаше и други предложения ;-)
> if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) != 0) {
> return(0);
> }
> status = regexec(&re, string, (size_t) 0, NULL, 0);
> regfree(&re);
> if (status != 0) {
> return(0);
> }
> return(1);
> }
>
> int main () {
>
> int res = is_ip ("192.168.0.1");
> printf ("Result is %d\n", res);
> res = is_ip ("192.168.0");
> printf ("Result is %d\n", res);
>
> }
май трябва да си прегледаш main()-a ;-), че програмата връща един и същи
резултат независимо какво се подава или пък аз нещо неразбирам идеята.
Result is 1
Result is 0
--
pub 4096R/0E4BD0AB 2003-03-18 <keyserver.bu.edu>
1AE7 7C66 0A26 5BFF DF22 5D55 1C57 0C89 0E4B D0AB
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================
|