Re: lug-bg: POSIX regex
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
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
-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
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( да не си помислите, че не знам англически) Направо цяла програмка получаваш :-) -80 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
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
Здравейте, 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( да не си помислите, че не знам англически) Направо цяла програмка получаваш :-) -80 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
> май това е 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
´À°²µ¹Âµ, > äà ñå ñãúð÷à. È íå ìîãà è íå ìîãà äà èçìèñëÿ - êàòî ìè ïàäíå ñòðèíã, êàê > äà íàïèøà 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
май това е 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
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