Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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.27 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> >>.