Annotation of researchv10dc/man/man3/regexp.3, revision 1.1.1.1

1.1       root        1: .TH REGEXP 3
                      2: .CT 2 data_man
                      3: .SH NAME
                      4: regcomp, regexec, regsub, regerror \(mi regular expression
                      5: .SH SYNOPSIS
                      6: .nf
                      7: .B #include <regexp.h>
                      8: .PP
                      9: .B regexp *regcomp(exp)
                     10: .B char *exp;
                     11: .PP
                     12: .B int regexec(prog, string, match, msize)
                     13: .B regexp *prog;
                     14: .B char *string;
                     15: .B regsubexp *match;
                     16: .B int msize;
                     17: .PP
                     18: .B void regsub(source, dest, match, msize)
                     19: .B char *source, *dest;
                     20: .B regsubexp *match;
                     21: .B int msize;
                     22: .PP
                     23: .B void regerror(msg)
                     24: .B char *msg;
                     25: .fi
                     26: .SH DESCRIPTION
                     27: .I Regcomp
                     28: compiles a
                     29: regular expression and returns
                     30: a pointer to a compiled regular expression.
                     31: The space is allocated by
                     32: .IR malloc (3)
                     33: and may be released by
                     34: .I free.
                     35: Regular expressions are as in
                     36: .IR re (3)
                     37: except that newlines are not operators and back-references (with
                     38: \fB\e\fIn\fR) are not supported.
                     39: .PP
                     40: .I Regexec
                     41: matches a null-terminated
                     42: .I string
                     43: against the compiled regular expression in
                     44: .I prog.
                     45: If it matches,
                     46: .I regexec
                     47: returns a non-zero value and fills in the array
                     48: .I match
                     49: with character pointers to the substrings of
                     50: .I string
                     51: that correspond to the
                     52: parenthesized subexpressions of 
                     53: .IR exp :
                     54: .BI match[ i ].sp
                     55: points to the beginning and
                     56: .BI match[ i ].ep
                     57: points just beyond
                     58: the end of the
                     59: .IR i th
                     60: substring.
                     61: (Subexpression
                     62: .I i
                     63: begins at the
                     64: .IR i th
                     65: left parenthesis, counting from 1.)
                     66: Pointers in
                     67: .B match[0]
                     68: pick out the substring that corresponds to
                     69: the whole regular expression.
                     70: Unused elements of
                     71: .I match
                     72: are filled with zeros.
                     73: Matches involving
                     74: .LR * ,
                     75: .LR + ,
                     76: and 
                     77: .L ?
                     78: are extended as far as possible.
                     79: The number of array elements in 
                     80: .I match
                     81: is given by
                     82: .I msize.
                     83: The structure of elements of
                     84: .I match 
                     85: is:
                     86: .IP
                     87: .EX
                     88: typedef struct {
                     89:        char *sp;
                     90:        char *ep;
                     91: } regsubexp;
                     92: .EE
                     93: .LP
                     94: .I Regsub
                     95: places in
                     96: .I dest
                     97: a substitution instance of
                     98: .I source
                     99: in the context of the last
                    100: .I regexec
                    101: performed using
                    102: .I match.
                    103: Each instance of
                    104: .BI \e n ,
                    105: where
                    106: .I n
                    107: is a digit, is replaced by the
                    108: string delimited by
                    109: .BI match[ n ].sp
                    110: and
                    111: .BI match[ n ].ep .
                    112: Each instance of 
                    113: .L &
                    114: is replaced by the string delimited by
                    115: .B match[0].sp
                    116: and
                    117: .BR match[0].ep .
                    118: .LP
                    119: .I Regerror,
                    120: called whenever an error is detected in
                    121: .I regcomp,
                    122: .I regexec,
                    123: or
                    124: .I regsub,
                    125: writes the string
                    126: .I msg
                    127: on the standard error file and exits.
                    128: .I Regerror
                    129: can be replaced to perform
                    130: special error processing.
                    131: .SH "SEE ALSO"
                    132: .IR gre (1),
                    133: .IR re (3), 
                    134: .IR expr (1)
                    135: .SH DIAGNOSTICS
                    136: .I Regcomp
                    137: returns 
                    138: .B (regexp *)0
                    139: for an illegal expression
                    140: or other failure.
                    141: .I Regexec
                    142: returns 0
                    143: if
                    144: .I string
                    145: is not accepted.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.