compile a regular expression, for use with regexec()
#include <regex.h> int regcomp( regex_t *preg, const char *pattern, int cflags );
The regcomp() function prepares the regular expression, preg, for use by the function regexec(), from the specification pattern and cflags. The member re_nsub of preg is set to the number of subexpressions in pattern. The argument cflags is the bitwise inclusive OR of zero or more of the following flags:
The functions that deal with regular expressions (regcomp(), regerror(), regexec(), and regfree()) support two classes of regular expressions, the Basic and Extended Regular Expressions. These classes are rigorously defined in IEEE P1003.2, Regular Expression Notation.
The Basic Regular Expressions are composed of these terms:
The Extended Regular Expressions also include:
Zero if successful, nonzero if the function fails for any reason.
/* The following example prints out all lines from FILE "f" that match "pattern". */ #include <stdio.h> #include <regex.h> void grep( char *pattern, FILE *f ) { int t; regex_t re; char buffer[MAX_INPUT]; if ((t=regcomp( &re, pattern, REG_NOSUB )) != 0) { regerror(t, &re, buffer, sizeof buffer); fprintf(stderr,"grep: %s (%s)\n",buffer,pattern); return; } while( fgets( buffer, MAX_INPUT, f ) != NULL ) { if( regexec( &re, buffer, 0, NULL, 0 ) == 0 ) { fputs( buffer, stdout ); } } regfree( &re ); }
POSIX 1003.2
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | No |
regerror(), regexec(), regfree()