Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       regcomp,   regexec,  regerror,  regfree  -  Fonctions  POSIX  pour  les
       expressions rationnelles (<< regex >>)

SYNOPSIS

       #include <sys/types.h>
       #include <regex.h>

       int regcomp(regex_t *preg, const char *regex, int cflags);

       int regexec(const regex_t *preg, const char *string, size_t nmatch,
                   regmatch_t pmatch[], int eflags);

       size_t regerror(int errcode, const regex_t *preg, char *errbuf,
                       size_t errbuf_size);

       void regfree(regex_t *preg);

DESCRIPTION

   Compilation d'expressions rationnelles POSIX
       regcomp() est utilisee pour compiler une  expression  rationnelle  sous
       une forme utilisable par la suite pour des recherches avec regexec().

       On fournit a regcomp() les arguments preg, un pointeur vers une zone de
       stockage du motif, regex, un pointeur vers une chaine terminee  par  un
       caractere   nul,   et  cflags,  les  attributs  indiquant  le  type  de
       compilation.

       Toutes les recherches  d'expressions  rationnelles  sont  effectuees  a
       travers  la  zone  de  motif  compile,  ainsi  regexec()  doit toujours
       recevoir l'adresse d'un motif initialise par regcomp().

       cflags peut etre un  OU  binaire  entre  une  ou  plusieurs  constantes
       symboliques suivantes :

       REG_EXTENDED
              Utiliser  la syntaxe d'expression rationnelle etendue POSIX pour
              interpreter regex. Sinon, la syntaxe d'expression rationnelle de
              base POSIX est utilisee.

       REG_ICASE
              Ne   pas   differencier   les  majuscules  des  minuscules.  Les
              recherches regexec() suivantes  utilisant  le  tampon  de  motif
              n'effectueront pas la differenciation.

       REG_NOSUB
              Ne   pas  utiliser  les  correspondances  de  sous-chaines.  Les
              parametres nmatch et pmatch de  regexec()  sont  ignores  si  le
              tampon de motif est compile avec cet attribut.

       REG_NEWLINE
              L'operateur  <<\ n'importe-quel-caractere\ >> ne s'identifie pas
              avec le saut de ligne.

              Une liste d'exceptions ([^...]) ne  contenant  pas  de  saut  de
              ligne ne s'identifie pas avec un saut de ligne.

              L'operateur  <<\  debut-de-ligne\  >>  (^)  s'identifie avec une
              chaine vide suivant immediatement un  saut  de  ligne,  meme  si
              l'attribut eflags de regexec() contient REG_NOTBOL.

              L'operateur <<\ fin-de-ligne\ >> ($) s'identifie avec une chaine
              vide  precedant  immediatement  un  saut  de  ligne,   meme   si
              l'attribut eflags contient REG_NOTEOL.

   Correspondance d'expressions rationnelles POSIX
       regexec()  est  utilisee  pour  mettre  en  correspondance  une  chaine
       terminee par un caractere nul, avec le tampon de motif precompile preg.
       nmatch  et pmatch fournissent des informations concernant l'emplacement
       des  correspondances.  eflags  peut  etre  un  OU  binaire  entre   les
       constantes REG_NOTBOL ou REG_NOTEOL qui modifient le comportement de la
       mise en correspondance decrite ci-dessous.

       REG_NOTBOL
              L'operateur <<\ debut-de-ligne\ >> echoue toujours  (mais  voyez
              l'attribut  de  compilation REG_NEWLINE ci-dessus). Cet attribut
              peut etre utilise quand differentes portions d'une  chaine  sont
              transmises  a  regexec()  et  que  le  debut  de  la  chaine  ne
              correspond pas a un debut de ligne.

       REG_NOTEOL
              L'operateur <<\ fin-de-ligne\ >>  echoue  toujours  (mais  voyez
              l'attribut de compilation REG_NEWLINE ci-dessus)

   D'ecalage d'octets
       A  moins  que  l'attribut  REG_NOSUB  n'ait  ete  utilise  lors  de  la
       compilation du motif, il est possible d'obtenir  des  informations  sur
       les correspondances de sous-chaines. pmatch doit etre dimensionnee pour
       contenir au moins nmatch elements. Ils sont remplis par regexec()  avec
       les  adresses  des  sous-chaines  mises  en  correspondance.  Tous  les
       elements inutilises de structure contiendront la valeur -1.

       La structure regmatch_t du type pmatch est definie dans <regex.h>.

           typedef struct {
               regoff_t rm_so;
               regoff_t rm_eo;
           } regmatch_t;

       Chaque element rm_so different de -1 indique le point de depart  de  la
       sous-chaine  suivante  la  plus longue qui soit mise en correspondance.
       L'element rm_eo indique le decalage de la fin de  la  sous-chaine,  qui
       est l'emplacement du premier caractere apres le texte qui correspond.

   Retours d'erreurs POSIX
       regerror() est utilise pour transformer les codes d'erreur renvoyes par
       regcomp() et par regexec() en libelles.

       regerror() recoit le code errcode, le tampon de motif preg, un pointeur
       sur  une  chaine de caracteres errbuf, et la longueur maximale de cette
       chaine errbuf_size. Cette fonction renvoie la taille errbuf  necessaire
       pour  contenir  le  libelle  d'erreur  termine par un caractere nul. Si
       errbuf et  errbuf_size  son  non  nuls,  errbuf  est  rempli  avec  les
       errbuf_size  -  1  premiers caracteres du libelle d'erreur, suivis d'un
       caractere nul.

   Lib'eration des tampons de motifs POSIX
       En fournissant a regfree() un  tampon  de  motif  precompile  preg,  il
       liberera  la  memoire  allouee  au  tampon  durant  la compilation avec
       regcomp().

VALEUR RENVOY'EE

       regcomp() renvoie zero si la compilation reussit, ou un  code  d'erreur
       en cas d'echec.

       regexec()  renvoie zero si la correspondance reussit, et REG_NOMATCH si
       elle echoue.

ERREURS

       Les erreurs suivantes peuvent etre declenchees par regcomp() :

       REG_BADBR
              Utilisation illegale de l'operateur de reference inverse.

       REG_BADPAT
              Utilisation illegale d'un operateur du type groupe ou liste.

       REG_BADRPT
              Utilisation  invalide  d'operateurs  de  repetition,  comme   un
              caractere << * >> en premiere place.

       REG_EBRACE
              Accolade manquante.

       REG_EBRACK
              Crochet manquant.

       REG_ECOLLATE
              Element de classement invalide.

       REG_ECTYPE
              Nom de classe de caractere inconnu.

       REG_EEND
              Erreur non specifique. Elle n'est pas definie par POSIX.2.

       REG_EESCAPE
              Barre oblique inverse de fin.

       REG_EPAREN
              Parenthese manquante.

       REG_ERANGE
              Utilisation  illegale  de l'operateur d'intervalle. Par exemple,
              la fin de l'intervalle est inferieure au debut de l'intervalle.

       REG_ESIZE
              La compilation aurait besoin d'un tampon de taille superieure  a
              64 Ko. Ce n'est pas defini par POSIX.2.

       REG_ESPACE
              Les routines regex ont epuise la memoire.

       REG_ESUBREG
              Reference inverse illegale vers une sous-expression.

CONFORMIT'E

       POSIX.1-2001.

VOIR AUSSI

       grep(1), regex(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.