🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
7 messages
7 total messages Started by japhy Sun, 12 Sep 1999 18:43
obsluga regexpow
#335
Author: japhy
Date: Sun, 12 Sep 1999 18:43
14 lines
1492 bytes
Szukam jakichkolwiek wskazowek jak obslugiwac regexpy.
Przegladalem regex.h i regexp.h ale mnie to nic nie mowi - 
 - mnie chodzi konkretnie o funkcje
 int is_regexp(char *pattern, char *string)
zwracajaca zero jak pasuje, kod bledu jak nie (co konkretnie nie pasuje)
a w naglowkowych sa nieco bardziej skomplikowane funkcje, co mnie nie
urzadza.

-- 
__   [ IRL: Maciek Pasternacki ] [ Mail: pankrac@lonet.gdynia.pl ]   -><-
`| _   |_\  / [ More info: finger pankrac@jessie.lonet.gdynia.pl ] GCM/MU>SS
,|{-}|}| }\/ d-? s:-- a17? C+++ UL+++>++++ P L+++ E--- W+ N++ ?o ?K w-- !O M--
\/   |____/ !V PS+++ !PE Y-- PGP- t+ ?5 X R tv->? b++ DI++ D-- G++ e- h* y
"common sense is what tells you that the world is flat."
Odp: obsluga regexpow
#336
Author: Dersu-R2-Uzala
Date: Sun, 12 Sep 1999 21:05
12 lines
1567 bytes
Użytkownik japhy <pankrac@lonet.gdynia.pl> w wiadomości do grup dyskusyjnych
napisał:slrn7tnt0f.efu.pankrac@jessie.lonet.gdynia.pl...
> Szukam jakichkolwiek wskazowek jak obslugiwac regexpy.
> Przegladalem regex.h i regexp.h ale mnie to nic nie mowi -
>  - mnie chodzi konkretnie o funkcje
>  int is_regexp(char *pattern, char *string)

Nie znam szczegółów (nigdy tego nie używałem), ale zdaje się że w "info
libc" conieco o tym piszą. Biorąc pod uwagę średnią jakość tego podręcznika,
to można się spodziewać, że na początek wystaczy.
                                                                    Mowglie
Re: obsluga regexpow
#337
Author: Łukasz Kowalczyk
Date: Sun, 12 Sep 1999 23:18
34 lines
1743 bytes
[ japhy ]
> Szukam jakichkolwiek wskazowek jak obslugiwac regexpy.

man regcomp
man regexec
man regfree

Ewentualnie ``pinfo libc'', rozdział "Pattern matching".

> Przegladalem regex.h i regexp.h ale mnie to nic nie mowi - 
>  - mnie chodzi konkretnie o funkcje
>  int is_regexp(char *pattern, char *string)
> zwracajaca zero jak pasuje, kod bledu jak nie (co konkretnie nie pasuje)

Z pomocą tych dwóch funkcji bez problemu napiszesz sobie coś takiego:

#include <stdio.h>
#include <regex.h>

int regmatch(char *pattern, char *string, int cflags, int eflags) {
    regex_t rcomp;
    int retval;
    
    if (regcomp(&rcomp, pattern, cflags | REG_NOSUB) != 0) return -1;
                                     /* REG_NOSUB dla uproszczenia */
    retval = regexec(&rcomp, string, 0, NULL, eflags);
    regfree(&rcomp);
    
    return retval;
}

-- 
Łukasz Kowalczyk
lukow<at>tempac.fuw.edu.pl              http://tempac.fuw.edu.pl/~lukow/
Re: obsluga regexpow
#341
Author: Jarek /Yossa/ Woloszyn
Date: Mon, 13 Sep 1999 00:03
21 lines
1815 bytes
On Sun, 12 Sep 1999 18:43:47 GMT, japhy <pankrac@lonet.gdynia.pl> wrote:
> Szukam jakichkolwiek wskazowek jak obslugiwac regexpy.
> Przegladalem regex.h i regexp.h ale mnie to nic nie mowi - 
>  - mnie chodzi konkretnie o funkcje
>  int is_regexp(char *pattern, char *string)
> zwracajaca zero jak pasuje, kod bledu jak nie (co konkretnie nie pasuje)
> a w naglowkowych sa nieco bardziej skomplikowane funkcje, co mnie nie
> urzadza.

man regex
najpierw trzeba skompilowac regexpa (regcomp) wtedy tez mozesz odczytać co
jest nie tak (regerror). Potem już szukasz co chcesz (regexec) - na koncu
zwalniasz pamiec (regfree).

Zobacz do mc jak tam sa uproszczone regexpy. Jak się zgłosisz na priva to
Ci podeślę mój moduł z jedną funkcją do szukania.

-- 
 ( Jarek Woloszyn ) ( yossa@pld.org.pl ) ( member of the GNU generation )
 ( Certificated in C & Linux adm. - http://www.tekmetrics.com  ID=85232 )
 ( HomePage http://dione.ids.pl/~yossa - PGP and Monopoly <ppp counter> ) 
Re: obsluga regexpow
#338
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 13 Sep 1999 11:23
14 lines
1547 bytes
12 Sep 1999 23:18:35 GMT, Łukasz Kowalczyk <smithy@promail.pl> pisze:

> Z pomocą tych dwóch funkcji bez problemu napiszesz sobie coś takiego:
[...]

Tyle że to będzie niepotrzebnie wolne jeśli wiele razy dopasowujemy do
tego samego regexpa. Po to kompilacja jest oddzielona od wykonywania
żeby nie kompilować za każdym razem tego samego.

-- 
 __("<    Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
 \__/          GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E-
  ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Re: obsluga regexpow
#339
Author: Łukasz Kowalczyk
Date: Mon, 13 Sep 1999 20:23
15 lines
1445 bytes
[ Marcin 'Qrczak' Kowalczyk ]
> > Z pomocą tych dwóch funkcji bez problemu napiszesz sobie coś takiego:
> [...]
> 
> Tyle że to będzie niepotrzebnie wolne jeśli wiele razy dopasowujemy do
> tego samego regexpa. Po to kompilacja jest oddzielona od wykonywania
> żeby nie kompilować za każdym razem tego samego.

Marcin, litości! Przecież ja to napisałem ad hoc w kilka minut, a pytający
wyraźnie chciał skrajnie prostą procedurkę. Ja z grubsza _potrafię_ używać
regex.h

-- 
Łukasz Kowalczyk
lukow<at>tempac.fuw.edu.pl              http://tempac.fuw.edu.pl/~lukow/
Re: obsluga regexpow
#340
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 13 Sep 1999 23:02
18 lines
1837 bytes
13 Sep 1999 20:23:18 GMT, Łukasz Kowalczyk <smithy@promail.pl> pisze:

> > Tyle że to będzie niepotrzebnie wolne jeśli wiele razy dopasowujemy do
> > tego samego regexpa. Po to kompilacja jest oddzielona od wykonywania
> > żeby nie kompilować za każdym razem tego samego.
> 
> Marcin, litości! Przecież ja to napisałem ad hoc w kilka minut,
> a pytający wyraźnie chciał skrajnie prostą procedurkę. Ja z grubsza
> _potrafię_ używać regex.h

Toteż mówię do pytającego, żeby nie używał skrajnie prostych procedurek
(chyba że zastosowanie jest skrajnie proste i jednokrotne).

-- 
 __("<    Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
 \__/          GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E-
  ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads