Provided by:
manpages-pt-dev_20040726-4_all 
NOME
regcomp, regexec, regerror, regfree - funcoes do regex POSIX
SINOPSE
#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);
COMPILA,C~AO DO REGEX POSIX
regcomp e usado para compilar uma expressao regular para um formato que
e apropriado para buscas subsequentes de regexec.
regcomp e fornecido com preg, um ponteiro para uma area padrao de
armazenamento de buffer; regex, um ponteiro para a string terminada em
nulo e cflags, flags usadas para determinar o tipo de compilacao.
Todas as buscas de expressao regular precisam ser feitas atraves de um
buffer-modelo compilado, portanto regexec sempre precisa ser fornecido
com o endereco de um buffer padrao de regcomp inicializado.
cflags pode ser um 'OU'bit-a-bit de um ou mais dos seguintes itens:
REG_EXTENDED
Usa POSIX Sintaxe de Expressoes Regular Estendidas quando
interpreta regex. Se nao for setado, POSIX A sintaxe de
Expressoes Regulares Basicas e usada.
REG_ICASE
Nao diferencia maiusculas de minusculas. Buscas sequenciais de
regexec usando este buffer padrao serao insensiveis a caixa.
REG_NOSUB
O suporte para enderecamento de substrings de resultados nao e
requerido. Os parametros nmatch e pmatch para regexec sao
ignorados se o buffer padrao fornecido foi compilado com esta
flag setada.
REG_NEWLINE
Operadores de "casamento com qualquer caractere" nao casam com
um caractere de nova linha.
Uma lista de nao-casamento ([^...]) que nao contem um caractere
de nova linha nao encontra um caractere de nova linha.
Operador de "casamento com inicio de linha" (^) casa com a
string vazia imediatamente depois de um caractere de nova linha,
independente se eflags, as flags de execucao de regexec, contem
REG_NOTBOL.
Operadores de "casamento com fim de linha" ($) casa com a string
vazia imediatamente antes de um caractere de nova linha,
independente se eflags contem REG_NOTEOL.
CASAMENTO DO REGEX POSIX
regexec e usado para encontrar uma string terminada em nulo no buffer
padrao pre-compilado, preg. nmatch e pmatch sao usados para dar
informacoes a respeito da posicao de qualquer casamento. eflags pode
ser um 'OU'bit-a-bit de um ou ambos REG_NOTBOL e REG_NOTEOL que causam
mudancas no comportamento de casamento descrito abaixo.
REG_NOTBOL
O operador de "casamento com inicio de linha" sempre falha em
encontrar (mas veja a flag de compilacao REG_NEWLINE acima).
Esta flag pode ser usada quando porcoes diferentes de uma string
sao passadas para regexec e o inicio da string nao pode ser
interpretada como o comeco da linha.
REG_NOTEOL
O operador de "casamento com o fim da linha" sempre falha em
encontrar (mas veja a flag de compilacao REG_NEWLINE acima).
COMPENSA,C~OES DE BYTE
A menos que REG_NOSUB tenha sido setado para a compilacao do buffer-
modelo, e possivel obter informacoes sobre enderecamento de casamento
de substrings. pmatch precisa ser dimensionado para ter pelo menos
nmatch elementos. Estes sao preenchidos por regexec com enderecos de
casamento de substrings. Quaisquer elementos de estrutura nao-usados
conterao o valor -1.
A estrutura regmatch_t que e o tipo de pmatch e definida em regex.h.
typedef struct
{
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;
Cada elemento rm_so que nao e -1 indica a compensacao inicial do
proximo maior casamento de substring dentro da string. O elemento
rm_eo relativo indica a compensacao final do casamento.
REPORTAGEM DE ERROS POSIX
regerror e usado para transformar os codigos de erro que podem ser
retornados por regcomp e regexec para strings de mensagens de erro.
regerror recebe o codigo de erro, errcode, o buffer modelo, preg, um
ponteiro para um buffer de string de caracteres, errbuf, e o tamanho do
buffer de string, errbuf_size. Retorna o tamanho de errbuf requerido
para conter uma string de mensagem de erro terminada em nulo. Se errbuf
e errbuf_size nao sao zero, errbuf e preenchido com os primeiros
errbuf_size - 1 caracteres da mensagem de erro e um nulo de terminacao.
LIBERA,C~AO DO BUFFER MODELO POSIX
Fornecendo regfree com um buffer modelo pre-compilado, preg liberara a
memoria alocada para o buffer modelo pelo processo de compilacao,
regcomp.
VALOR DE RETORNO
regcomp retorna zero para uma compilacao bem-sucedida ou um codigo de
erro em caso de falha.
regexec retorna zero para um casamento bem-sucedido ou REG_NOMATCH para
falha.
ERROS
Os seguintes erros podem ser retornados por regcomp:
REG_BADRPT
Uso invalido de operadores de repeticao, como o uso de `*' como
o primeiro caractere.
REG_BADBR
Uso invalido de operador de referencia retroativa.
REG_EBRACE
Operadores de intervalo com colchetes descasados.
REG_EBRACK
Operadores de lista com colchetes descasados.
REG_ERANGE
Uso invalido do operador de faixa, por exemplo, o ponto final da
faixa ocorre antes do ponto inicial.
REG_ECTYPE
Nome de classe de caractere desconhecido.
REG_ECOLLATE
Elemento de ordenacao invalido.
REG_EPAREN
Operadores de grupo com parenteses descasados.
REG_ESUBREG
Referencia retroativa invalida a uma subexpressao.
REG_EEND
Erro nao especifico. Este nao e definido pelo POSIX.2.
REG_EESCAPE
Barra invertida perdida.
REG_BADPAT
Uso invalido de operadores de modelo, tais como grupo ou lista.
REG_ESIZE
Expressao regular compilada requer um buffer modelo maior de
64Kb. Isto nao e definido pelo POSIX.2.
REG_ESPACE
As rotinas regex rodaram fora de memoria.
CONFORME
POSIX.2
BUGS
Correntemente (visao instantanea 980503 da libc GNU), a libc GNU nao
suporta elementos de ordenacao em expressoes regulares.
VEJA TAMB'EM
regex(7), manual do regex GNU
TRADUZIDO PELO LDP-BR EM 09/08/2000
RUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (traducao) XXXXXX XX
XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisao)