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 utilisée pour compiler une  expression  rationnelle  sous
       une forme utilisable par la suite pour des recherches avec regexec().

       On fournit à regcomp() les arguments preg, un pointeur vers une zone de
       stockage du motif, regex, un pointeur vers une chaîne terminée  par  un
       caractère   nul,   et  cflags,  les  attributs  indiquant  le  type  de
       compilation.

       Toutes les recherches  d'expressions  rationnelles  sont  effectuées  à
       travers  la  zone  de  motif  compilé,  ainsi  regexec()  doit toujours
       recevoir l'adresse d'un motif initialisé par regcomp().

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

       REG_EXTENDED
              Utiliser  la syntaxe d'expression rationnelle étendue POSIX pour
              interpréter regex. Sinon, la syntaxe d'expression rationnelle de
              base POSIX est utilisée.

       REG_ICASE
              Ne   pas   différencier   les  majuscules  des  minuscules.  Les
              recherches regexec() suivantes  utilisant  le  tampon  de  motif
              n'effectueront pas la différenciation.

       REG_NOSUB
              Ne   pas  utiliser  les  correspondances  de  sous-chaînes.  Les
              paramètres nmatch et pmatch de  regexec()  sont  ignorés  si  le
              tampon de motif est compilé avec cet attribut.

       REG_NEWLINE
              L'opérateur  «\  n'importe-quel-caractère\  » 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'opérateur «\ début-de-ligne\ » (^) s'identifie avec une chaîne
              vide suivant immédiatement un saut de ligne, même si  l'attribut
              eflags de regexec() contient REG_NOTBOL.

              L'opérateur  «\  fin-de-ligne\ » ($) s'identifie avec une chaîne
              vide  précédant  immédiatement  un  saut  de  ligne,   même   si
              l'attribut eflags contient REG_NOTEOL.

   Correspondance d'expressions rationnelles POSIX
       regexec()  est  utilisée  pour  mettre  en  correspondance  une  chaîne
       terminée par un caractère nul, avec le tampon de motif précompilé preg.
       nmatch  et pmatch fournissent des informations concernant l'emplacement
       des  correspondances.  eflags  peut  être  un  OU  binaire  entre   les
       constantes REG_NOTBOL ou REG_NOTEOL qui modifient le comportement de la
       mise en correspondance décrite ci-dessous.

       REG_NOTBOL
              L'opérateur «\ début-de-ligne\ »  échoue  toujours  (mais  voyez
              l'attribut  de  compilation REG_NEWLINE ci-dessus). Cet attribut
              peut être utilisé quand différentes portions d'une  chaîne  sont
              transmises  à  regexec()  et  que  le  début  de  la  chaîne  ne
              correspond pas à un début de ligne.

       REG_NOTEOL
              L'opérateur «\  fin-de-ligne\  »  échoue  toujours  (mais  voyez
              l'attribut de compilation REG_NEWLINE ci-dessus)

   Décalage d'octets
       À  moins  que  l'attribut  REG_NOSUB  n'ait  été  utilisé  lors  de  la
       compilation du motif, il est possible d'obtenir  des  informations  sur
       les correspondances de sous-chaînes. pmatch doit être dimensionnée pour
       contenir au moins nmatch éléments. Ils sont remplis par regexec()  avec
       les  adresses  des  sous-chaînes  mises  en  correspondance.  Tous  les
       éléments inutilisés de structure contiendront la valeur -1.

       La structure regmatch_t du type pmatch est définie dans <regex.h>.

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

       Chaque élément rm_so différent de -1 indique le point de départ  de  la
       sous-chaîne  suivante  la  plus longue qui soit mise en correspondance.
       L'élément rm_eo indique le décalage de la fin de  la  sous-chaîne,  qui
       est l'emplacement du premier caractère après le texte qui correspond.

   Retours d'erreurs POSIX
       regerror() est utilisé pour transformer les codes d'erreur renvoyés par
       regcomp() et par regexec() en libellés.

       regerror() reçoit le code errcode, le tampon de motif preg, un pointeur
       sur  une  chaîne de caractères errbuf, et la longueur maximale de cette
       chaîne errbuf_size. Cette fonction renvoie la taille errbuf  nécessaire
       pour  contenir  le  libellé  d'erreur  terminé par un caractère nul. Si
       errbuf et  errbuf_size  son  non  nuls,  errbuf  est  rempli  avec  les
       errbuf_size  -  1  premiers caractères du libellé d'erreur, suivis d'un
       caractère nul.

   Libération des tampons de motifs POSIX
       En fournissant à regfree() un  tampon  de  motif  précompilé  preg,  il
       libérera  la  mémoire  allouée  au  tampon  durant  la compilation avec
       regcomp().

VALEUR RENVOYÉE

       regcomp() renvoie zéro si la compilation réussit, ou un  code  d'erreur
       en cas d'échec.

       regexec()  renvoie zéro si la correspondance réussit, et REG_NOMATCH si
       elle échoue.

ERREURS

       Les erreurs suivantes peuvent être déclenchées par regcomp() :

       REG_BADBR
              Utilisation illégale de l'opérateur de référence inverse.

       REG_BADPAT
              Utilisation illégale d'un opérateur du type groupe ou liste.

       REG_BADRPT
              Utilisation  invalide  d'opérateurs  de  répétition,  comme   un
              caractère « * » en première place.

       REG_EBRACE
              Accolade manquante.

       REG_EBRACK
              Crochet manquant.

       REG_ECOLLATE
              Élément de classement invalide.

       REG_ECTYPE
              Nom de classe de caractère inconnu.

       REG_EEND
              Erreur non spécifique. Elle n'est pas définie par POSIX.2.

       REG_EESCAPE
              Barre oblique inverse de fin.

       REG_EPAREN
              Parenthèse manquante.

       REG_ERANGE
              Utilisation  illégale  de l'opérateur d'intervalle. Par exemple,
              la fin de l'intervalle est inférieure au début de l'intervalle.

       REG_ESIZE
              La compilation aurait besoin d'un tampon de taille supérieure  à
              64 Ko. Ce n'est pas défini par POSIX.2.

       REG_ESPACE
              Les routines regex ont épuisé la mémoire.

       REG_ESUBREG
              Référence inverse illégale vers une sous-expression.

CONFORMITÉ

       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       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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
       François et l'équipe francophone de traduction de Debian (2006-2009).

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

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».