other languages
other sections
REGCOMP(3) | Manual do Programador Linux | REGCOMP(3) |
NOME¶
regcomp, regexec, regerror, regfree - funções do regex POSIXSINOPSE¶
#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ÇÃO DO REGEX POSIX¶
regcomp é usado para compilar uma expressão regular para um formato que é apropriado para buscas subsequentes de regexec.- REG_EXTENDED
- Usa POSIX Sintaxe de Expressões Regular Estendidas quando interpreta regex. Se não for setado, POSIX A sintaxe de Expressões Regulares Básicas é usada.
- REG_ICASE
- Não diferencia maiúsculas de minúsculas. Buscas sequenciais de regexec usando este buffer padrão serão insensíveis à caixa.
- REG_NOSUB
- O suporte para endereçamento de substrings de resultados não é requerido. Os parâmetros nmatch e pmatch para regexec são ignorados se o buffer padrão fornecido foi compilado com esta flag setada.
- REG_NEWLINE
- Operadores de "casamento com qualquer caractere"
não casam com um caractere de nova linha.
CASAMENTO DO REGEX POSIX¶
regexec é usado para encontrar uma string terminada em nulo no buffer padrão pré-compilado, preg. nmatch e pmatch são usados para dar informações a respeito da posição de qualquer casamento. eflags pode ser um 'OU'bit-a-bit de um ou ambos REG_NOTBOL e REG_NOTEOL que causam mudanças no comportamento de casamento descrito abaixo.- REG_NOTBOL
- O operador de "casamento com início de linha" sempre falha em encontrar (mas veja a flag de compilação REG_NEWLINE acima). Esta flag pode ser usada quando porções diferentes de uma string são passadas para regexec e o início da string não pode ser interpretada como o começo da linha.
- REG_NOTEOL
- O operador de "casamento com o fim da linha" sempre falha em encontrar (mas veja a flag de compilação REG_NEWLINE acima).
COMPENSAÇÕES DE BYTE¶
A menos que REG_NOSUB tenha sido setado para a compilação do buffer-modelo, é possível obter informações sobre endereçamento de casamento de substrings. pmatch precisa ser dimensionado para ter pelo menos nmatch elementos. Estes são preenchidos por regexec com endereços de casamento de substrings. Quaisquer elementos de estrutura não-usados conterão o valor -1.typedef struct
{
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;
REPORTAGEM DE ERROS POSIX¶
regerror é usado para transformar os códigos de erro que podem ser retornados por regcomp e regexec para strings de mensagens de erro.LIBERAÇÃO DO BUFFER MODELO POSIX¶
Fornecendo regfree com um buffer modelo pré-compilado, preg liberará a memória alocada para o buffer modelo pelo processo de compilação, regcomp.VALOR DE RETORNO¶
regcomp retorna zero para uma compilação bem-sucedida ou um código de erro em caso de falha.ERROS¶
Os seguintes erros podem ser retornados por regcomp:- REG_BADRPT
- Uso inválido de operadores de repetição, como o uso de `*' como o primeiro caractere.
- REG_BADBR
- Uso inválido de operador de referência retroativa.
- REG_EBRACE
- Operadores de intervalo com colchetes descasados.
- REG_EBRACK
- Operadores de lista com colchetes descasados.
- REG_ERANGE
- Uso inválido 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 ordenação inválido.
- REG_EPAREN
- Operadores de grupo com parênteses descasados.
- REG_ESUBREG
- Referência retroativa inválida a uma subexpressão.
- REG_EEND
- Erro não específico. Este não é definido pelo POSIX.2.
- REG_EESCAPE
- Barra invertida perdida.
- REG_BADPAT
- Uso inválido de operadores de modelo, tais como grupo ou lista.
- REG_ESIZE
- Expressão regular compilada requer um buffer modelo maior de 64Kb. Isto não é definido pelo POSIX.2.
- REG_ESPACE
- As rotinas regex rodaram fora de memória.
CONFORME¶
POSIX.2BUGS¶
Correntemente (visão instantânea 980503 da libc GNU), a libc GNU não suporta elementos de ordenação em expressões regulares.VEJA TAMBÉM¶
regex(7), manual do regex GNUTRADUZIDO PELO LDP-BR EM 09/08/2000¶
RUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (tradução) XXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisão)8 de maio de 1998 | GNU |