Re: lug-bg: POSIX regex

2003-09-20 Thread raptor
move bi po dobre ste e da ne polzwash regex... a nesto ot roda (perl pesudo code) :

sub check {
  my $ip = shift;
  @array = split '\.',$ip;
  for ($i = 0; $i < 3; $i++) {
return 0  unless $a[$i] > 0 and $a[$i] < 256;
  }
  return 1
}

move da e po byrzo ot regex.


|Здрвасти отново. Аз днес май ми е ден да ми е накриво:((
|Значи пиша едно софтуерче на С за Линукс, което ужасно ще ми облекчи живота.
|Въпроса е, че е за доста слаба машина и най-читавият вариант е да се използва 
|С за целта + 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( да не си помислите, че не знам англически)

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



Re: lug-bg: POSIX regex

2003-09-19 Thread Огнян Кулев
sheib wrote:
май това е posix еквивалента :
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.([0-9]{1,3}
obache tova vkluchva "adresi" ot tip 0.932.857.401.
opitai da polzvash neshto takova:
(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])
ne che e idealno, no imo e po-blizo do istinata :)
А може ли да изключваш broadcast и network адресите? ;-)

И още един прост вариант:

[0-9]{1,3}(\.[0-9]{1,3}){3}

Поздрави
--
Огнян Кулев <[EMAIL PROTECTED],fsa-bg.org,jabber.net}>
7D9F 66E6 68B7 A62B 0FCF  EB04 80BF 3A8C A252 9782

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



Re: lug-bg: POSIX regex

2003-09-18 Thread peyo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Лелемал!
То това "изразите" били голяма работа уе!
А не е истина колко процесорно време спестява

Много благодаря на всички за вниманието и съпричастието. Когато стана готов се 
надявам да напиша (както се изрази преди дни един колега) hAwto по 
въпроса:

Още веднъж благодаря за вниманието:)
Искрено Ваш:
Пейо
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3 (GNU/Linux)

iD4DBQE/aqUpuce0zVwaIYkRAprVAJd8AA+AMINJ19v0QBS6dYZTeBa0AJ9+tHZN
/mVbxUQpknuI/lkdmvay7A==
=JnqE
-END PGP SIGNATURE-

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



Re: lug-bg: POSIX regex

2003-09-18 Thread Nikolay Mitev
George Danchev wrote:

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 0 otherwise

*/

int is_ip (const char *string) {
   intstatus;
   regex_tre;
   const char *pattern =
"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}";
   

тука май имаше и други предложения ;-)

Мдааа, нищо не му пречи да замени pattern с някое от другите 
предложения. Аз просто показах как се ползва API-то, защото, незнайно 
защо реших, че той за него пита...

   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
 

Ъ, 1 и 0 един и същи резултат ли са? ;-)
Сигурно не си обърнал внимание, че първото извикване е с
192.168.0.1, а второто е
192.168.0
Само дето съм объркал коментара на is_ip (). Sorry. Връща 0 при грешка и 
1 при успех...
:-)

cheers,
face

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



Re: lug-bg: POSIX regex

2003-09-18 Thread George Danchev
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 #include 
>
> /* returns 0 if string is a valid ip
>
>> 0 otherwise
>
> */
>
> int is_ip (const char *string) {
> intstatus;
> regex_tre;
>
> 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 
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



Re: lug-bg: POSIX regex

2003-09-18 Thread Nikolay Mitev
Здравейте,

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 0 otherwise
*/
int is_ip (const char *string) {
   intstatus;
   regex_tre;
   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);
}

cheers,
face

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



Re: lug-bg: POSIX regex

2003-09-18 Thread sheib

> май това е posix еквивалента :
> [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.([0-9]{1,3}

obache tova vkluchva "adresi" ot tip 0.932.857.401.
opitai da polzvash neshto takova:

(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)
\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])

ne che e idealno, no imo e po-blizo do istinata :)

s.

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



Re: lug-bg: POSIX regex

2003-09-18 Thread Ilia Trendafilov
—´À°²µ¹Âµ, 
> äà ñå ñãúð÷à. È íå ìîãà è íå ìîãà äà èçìèñëÿ - êàòî ìè ïàäíå ñòðèíã, êàê
> äà íàïèøà regex-a òàêà, ÷å äà õâàíå äàëè òîâà å ÈÏ àäðåñ èëè íå å. Ñàìî äà
> âè êàæà, ÷å ìàé òóê ne e kato v Perl regex. ïðîáâàì \d+.\d+\d+.\d+,
> (1-254).(1-254).(1-254). (1-254)àìà íå... Òà ìîæå ëè íÿêîè ïî-çàïîçíàò
> äà ìè îêàæå HEEELP!? 10x in advance( äà íå ñè ïîìèñëèòå, ÷å íå çíàì
> àíãëè÷åñêè)
  µ Áʼ Á¸³ÃÀµ½ ´°»¸ ¾²° µ ¿À¾±»µ¼°, ¾±°Çµ ½°¹-¼°»º¾Â¾, ¾Ǻ°Â° ÂÀϱ²° 
´° Áµ escape-½µ (¸½°Çµ ¾·½°Ç°²° "²Áµº¸ Á¸¼²¾»"). žÁ²µ½ ¾²° 1-254 
¾¿Àµ´µ»µ½¾ ½Ï¼° ´° match-½µ ǸÁ»¾ ² ¾·¸ ¸½ÂµÀ²°», ¿¾-Áº¾À¾ ɵ match-½µ 1 
¸»¸ 2, ¿¾Á»µ´²°½¾ ¾Â 54. ŸÀ¾±²°¹ ÁÊÁ
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
¼°º°À ǵ ¸ ¾²° ½µ µ ÁʲÁµ¼ ¾ǽ¾ ÀµÈµ½¸µ, ·°É¾Â¾ ɵ match-½µ ¸ 
999.999.999.999, ½¾ ²Áµ ¿°º ²Á¸Çº¾, º¾µÂ¾ µ IP ɵ Áµ "Ų°½µ".
  ”°½¾ ¸¼° ¿¾»·° ¾Â ¿¸Á°½¸Ï° ¼¸.
  Ÿ¾·´À°²¸, ˜»¸Ï

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



Re: lug-bg: POSIX regex

2003-09-18 Thread Peio Popov
май това е posix еквивалента :
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.([0-9]{1,3}
пейо

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( да не си помислите, че не знам англически)

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




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



Re: lug-bg: POSIX regex

2003-09-18 Thread Stoyan Dimitrov
Hi,
mi probvaj tova
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

ili tova

([0-9]+\.?)+


- Original Message -
From: "peyo" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, September 18, 2003 6:23 PM
Subject: lug-bg: POSIX regex


> Здрвасти отново. Аз днес май ми е ден да ми е накриво:((
> Значи пиша едно софтуерче на С за Линукс, което ужасно ще ми облекчи
живота.
> Въпроса е, че е за доста слаба машина и най-читавият вариант е да се
използва
> С за целта + 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( да не си помислите, че не знам англически)
>

> 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
>

>


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