1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298
|
.\" Copyright (C), 1995, Graeme W. Wilford. (Wilf.)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Wed Jun 14 16:10:28 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
.\" Tiny change in formatting - aeb, 950812
.\" Modified 8 May 1998 by Joseph S. Myers (jsm28@cam.ac.uk)
.\"
.\" show the synopsis section nicely
.de xx
.in \\n(INu+\\$1
.ti -\\$1
..
.TH REGCOMP 3 "8 de maio de 1998" GNU "Manual do Programador Linux"
.SH NOME
regcomp, regexec, regerror, regfree \- funes do regex POSIX
.SH SINOPSE
.B #include <regex.h>
.sp
.xx \w'\fBint\ regcomp(\fR'u
.BI "int\ regcomp(regex_t *" preg ", const char *" regex ,
.BI "int " cflags );
.xx \w'\fBint\ regexec(\fR'u
.BI "int\ regexec(const regex_t *" preg ", const char *" string ,
.BI "size_t " nmatch ", regmatch_t " pmatch[] ,
.BI "int " eflags );
.xx \w'\fBsize_t\ regerror(\fR'u
.BI "size_t\ regerror(int " errcode ,
.BI "const regex_t *" preg ", char *" errbuf ,
.BI "size_t " errbuf_size );
.xx \w'\fBvoid\ regfree(\fR'
.BI "void\ regfree(regex_t *" preg );
.SH "COMPILAO DO REGEX POSIX"
.B regcomp
usado para compilar uma expresso regular para um formato que apropriado para
buscas subsequentes de
.B regexec.
.B regcomp
fornecido com
.IR preg ,
um ponteiro para uma rea padro de armazenamento de buffer;
.IR regex ,
um ponteiro para a string terminada em nulo e
.IR cflags ,
flags usadas para determinar o tipo de compilao.
Todas as buscas de expresso regular precisam ser feitas atravs de um buffer-modelo
compilado, portanto
.B regexec
sempre precisa ser fornecido com o endereo de um buffer padro de
.B regcomp
inicializado.
.I cflags
pode ser um
.RB 'OU' bit-a-bit
de um ou mais dos seguintes itens:
.TP
.B REG_EXTENDED
Usa
.B POSIX
Sintaxe de Expresses Regular Estendidas quando interpreta
.IR regex .
Se no for setado,
.B POSIX
A sintaxe de Expresses Regulares Bsicas usada.
.TP
.B REG_ICASE
No diferencia maisculas de minsculas. Buscas sequenciais de
.B regexec
usando este buffer padro sero insensveis caixa.
.TP
.B REG_NOSUB
O suporte para endereamento de substrings de resultados no requerido.
Os parmetros
.I nmatch
e
.I pmatch
para
.B regexec
so ignorados se o buffer padro fornecido foi compilado com esta flag setada.
.TP
.B REG_NEWLINE
Operadores de "casamento com qualquer caractere" no casam com um caractere de nova linha.
Uma lista de no-casamento
.RB ( [^...] )
que no contm um caractere de nova linha no encontra um caractere de nova linha.
Operador de "casamento com incio de linha"
.RB ( ^ )
casa com a string vazia imediatamente depois de um caractere de nova linha, independente se
.IR eflags ,
as flags de execuo de
.BR regexec ,
contm
.BR REG_NOTBOL .
Operadores de "casamento com fim de linha"
.RB ( $ )
casa com a string vazia imediatamente antes de um caractere de nova linha, independente se
.IR eflags
contm
.BR REG_NOTEOL .
.SH "CASAMENTO DO REGEX POSIX"
.B regexec
usado para encontrar uma string terminada em nulo no buffer padro pr-compilado,
.IR preg .
.I nmatch
e
.I pmatch
so usados para dar informaes a respeito da posio de qualquer casamento.
.I eflags
pode ser um
.RB 'OU' bit-a-bit
de um ou ambos
.B REG_NOTBOL
e
.B REG_NOTEOL
que causam mudanas no comportamento de casamento descrito abaixo.
.TP
.B REG_NOTBOL
O operador de "casamento com incio de linha" sempre falha em encontrar (mas veja a flag
de compilao
.B REG_NEWLINE
acima).
Esta flag pode ser usada quando pores diferentes de uma string so passadas para
.B regexec
e o incio da string no pode ser interpretada como o comeo da linha.
.TP
.B REG_NOTEOL
O operador de "casamento com o fim da linha" sempre falha em encontrar (mas veja a flag
de compilao
.B REG_NEWLINE
acima).
.SS "COMPENSAES DE BYTE"
A menos que
.B REG_NOSUB
tenha sido setado para a compilao do buffer-modelo, possvel obter informaes sobre
endereamento de casamento de substrings.
.I pmatch
precisa ser dimensionado para ter pelo menos
.I nmatch
elementos.
Estes so preenchidos por
.BR regexec
com endereos de casamento de substrings. Quaisquer elementos de estrutura no-usados
contero o valor -1.
A estrutura
.B regmatch_t
que o tipo de
.I pmatch
definida em
.IR regex.h .
.RS
.B typedef struct
.br
.B {
.br
.BI " regoff_t " rm_so ;
.br
.BI " regoff_t " rm_eo ;
.br
.B }
.B regmatch_t;
.RE
Cada elemento
.I rm_so
que no -1 indica a compensao inicial do prximo maior casamento de substring dentro
da string. O elemento
.I rm_eo
relativo indica a compensao final do casamento.
.SH "REPORTAGEM DE ERROS POSIX"
.B regerror
usado para transformar os cdigos de erro que podem ser retornados por
.B regcomp
e
.B regexec
para strings de mensagens de erro.
.B regerror
recebe o cdigo de erro,
.IR errcode ,
o buffer modelo,
.IR preg ,
um ponteiro para um buffer de string de caracteres,
.IR errbuf ,
e o tamanho do buffer de string,
.IR errbuf_size .
Retorna o tamanho de
.I errbuf
requerido para conter uma string de mensagem de erro terminada em nulo. Se
.I errbuf
e
.I errbuf_size
no so zero,
.I errbuf
preenchido com os primeiros
.I "errbuf_size - 1"
caracteres da mensagem de erro e um nulo de terminao.
.SH "LIBERAO DO BUFFER MODELO POSIX"
Fornecendo
.B regfree
com um buffer modelo pr-compilado,
.I preg
liberar a memria alocada para o buffer modelo pelo processo de compilao,
.BR regcomp .
.SH "VALOR DE RETORNO"
.B regcomp
retorna zero para uma compilao bem-sucedida ou um cdigo de erro em caso de falha.
.B regexec
retorna zero para um casamento bem-sucedido ou
.B REG_NOMATCH
para falha.
.SH ERROS
Os seguintes erros podem ser retornados por
.BR regcomp :
.TP
.B REG_BADRPT
Uso invlido de operadores de repetio, como o uso de
.RB ` * '
como o primeiro caractere.
.TP
.B REG_BADBR
Uso invlido de operador de referncia retroativa.
.TP
.B REG_EBRACE
Operadores de intervalo com colchetes descasados.
.TP
.B REG_EBRACK
Operadores de lista com colchetes descasados.
.TP
.B REG_ERANGE
Uso invlido do operador de faixa, por exemplo, o ponto final da faixa ocorre antes do
ponto inicial.
.TP
.B REG_ECTYPE
Nome de classe de caractere desconhecido.
.TP
.B REG_ECOLLATE
Elemento de ordenao invlido.
.TP
.B REG_EPAREN
Operadores de grupo com parnteses descasados.
.TP
.B REG_ESUBREG
Referncia retroativa invlida a uma subexpresso.
.TP
.B REG_EEND
Erro no especfico. Este no definido pelo POSIX.2.
.TP
.B REG_EESCAPE
Barra invertida perdida.
.TP
.B REG_BADPAT
Uso invlido de operadores de modelo, tais como grupo ou lista.
.TP
.B REG_ESIZE
Expresso regular compilada requer um buffer modelo maior de 64Kb.
Isto no definido pelo POSIX.2.
.TP
.B REG_ESPACE
As rotinas regex rodaram fora de memria.
.SH "CONFORME"
POSIX.2
.SH BUGS
Correntemente (viso instantnea 980503 da libc GNU), a libc GNU no suporta
elementos de ordenao em expresses regulares.
.SH "VEJA TAMBM"
.BR regex (7),
.B "manual do regex GNU"
.SH TRADUZIDO PELO LDP-BR EM 09/08/2000
\&\fR\&\f(CWRUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (traduo)\fR
\&\fR\&\f(CWXXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (reviso)\fR
|