Thread View: pl.comp.os.linux.programowanie
7 messages
7 total messages
Started by japhy
Sun, 12 Sep 1999 18:43
obsluga regexpow
Author: japhy
Date: Sun, 12 Sep 1999 18:43
Date: Sun, 12 Sep 1999 18:43
14 lines
1492 bytes
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
Author: Dersu-R2-Uzala
Date: Sun, 12 Sep 1999 21:05
Date: Sun, 12 Sep 1999 21:05
12 lines
1567 bytes
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
Author: Łukasz Kowalczyk
Date: Sun, 12 Sep 1999 23:18
Date: Sun, 12 Sep 1999 23:18
34 lines
1743 bytes
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
Author: Jarek /Yossa/ Woloszyn
Date: Mon, 13 Sep 1999 00:03
Date: Mon, 13 Sep 1999 00:03
21 lines
1815 bytes
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
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 13 Sep 1999 11:23
Date: Mon, 13 Sep 1999 11:23
14 lines
1547 bytes
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
Author: Łukasz Kowalczyk
Date: Mon, 13 Sep 1999 20:23
Date: Mon, 13 Sep 1999 20:23
15 lines
1445 bytes
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
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 13 Sep 1999 23:02
Date: Mon, 13 Sep 1999 23:02
18 lines
1837 bytes
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