NAME
regex.h —
regular-expression-matching types
SYNOPSIS
#include <regex.h>
DESCRIPTION
The <regex.h> header defines the
structures and symbolic constants used by the regcomp(3) ,
regexec(3) , regerror(3) and
regfree(3) functions.
The structure type
regex_t contains
at least the following member: size_t re_nsub number of
parenthesised subexpressions
The type
regoff_t is
defined as a signed arithmetic type that can hold the largest value that can
be stored in either a type
off_t or
type
ssize_t.
The structure type
regmatch_t
contains at least the following members: regoff_t rm_so
byte offset from start of string to start of substring regoff_t rm_eo byte
offset from start of string of the first character after the end of
substring
Values for the cflags parameter to the regcomp() function:
- REG_EXTENDED
- Use Extended Regular Expressions.
- REG_ICASE
- Ignore case in match.
- REG_NOSUB
- Report only success or fail in regexec(3) .
- REG_NEWLINE
- Change the handling of newline.
Values for the eflags parameter to the regexec() function:
- REG_NOTBOL
- The circumflex character (^), when taken as a special character, will not match the beginning of string .
- REG_NOTEOL
- The dollar sign ($), when taken as a special character, will not match the end of string .
The following constants are defined as error return values:
- REG_NOMATCH
- regexec(3) failed to match.
- REG_BADPAT
- Invalid regular expression.
- REG_ECOLLATE
- Invalid collating element referenced.
- REG_ECTYPE
- Invalid character class type referenced.
- REG_EESCAPE
- Trailing \ in pattern.
- REG_ESUBREG
- Number in \ digit invalid or in error.
- REG_EBRACK
- [ ] imbalance.
- REG_EPAREN
- \( \) or ( ) imbalance.
- REG_EBRACE
- \{ \} imbalance.
- REG_BADBR
- Content of \{ \} invalid: not a number, number too large, more than two numbers, first larger than second.
- REG_ERANGE
- Invalid endpoint in range expression.
- REG_ESPACE
- Out of memory.
- REG_BADRPT
- ?, * or + not preceded by valid regular expression.
- REG_ENOSYS
- The implementation does not support the function.
The following are declared as functions and may also be declared
as macros. Function prototypes must be provided for use with an ISO C
compiler. int regcomp(regex_t *, const char *, int); int
regexec(const regex_t *, const char *, size_t, regmatch_t[], int); size_t
regerror(int, const regex_t *, char *, size_t); void regfree(regex_t
*);
The implementation may define additional macros or constants using names beginning with REG_.
APPLICATION USAGE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
regcomp(3) , the XCU specification.