Zpracovani regularnich vyrazu funkcemi z regex.h (nacitani konfiguracniho souboru)
Ladislav Vaiz
spam na nagano.cz
Čtvrtek Únor 23 07:51:01 CET 2006
Postgres patrne používá perlovéregulární výrazy. Liší se zejména ve
významu závorek. Ve vašem případě bych zkusil přidat před závorky znak
backslash (\). Protože je to v C speciální znak, tak ho musíte zapsat
jako dva:
perr = regcomp(&preg, "^\\(?! *#\\)\\(.+\\)", REG_ICASE | REG_EXTENDED)));
Kdybyste neměl flag REG_EXTENDED, tak musíte eskejpovat i +. Pokud jsem
ale pochopil váš úmysl, tak bych zde použil hvězdičku, protože za #
nemusí být už žádný znak a také je to komentář.
La'd"a
Zdenek Janis wrote:
>Dobry den,
>v progarmu (v C) nacitam konfiguracni soubor po radcich a chtel jsem
>pouzit funkce z regex.h abych rozpoznal komentar, prazdne radky a
>konfiguracni hodnoty.
>Ale jsem zmaten, neb to co mi funguje v PostgreSQL (tam si to testuji)
>hlasi chybu v regcomp():
>
><code>
>
>regex_t preg;
>int perr;
>perr = regcomp(&preg, "^(?! *#)(.+)", REG_ICASE | REG_EXTENDED)));
>
></code>
>
>regerror(): "Invalid preceding regular expression"
>
>Co je spatne? Ma PostgreSQL jine regexp? Pokud ano, jak regularni vyraz
>zapasat jinak?
>
>
>
Další informace o konferenci Linux