Ricardo Peres wrote:
> Can anyone provide an example of using regular expressions in C
> programming?
OK.
--
Glynn Clements <[EMAIL PROTECTED]>
#include <stdio.h>
#include <regex.h>
static regex_t regex;
static int
egrep(const char *exp, FILE *fp)
{
int result = regcomp(®ex, exp, REG_NOSUB | REG_EXTENDED);
if (result != 0)
{
char errbuff[1024];
regerror(result, ®ex, errbuff, sizeof(errbuff));
fprintf(stderr, "regcomp: %s\n", errbuff);
return 1;
}
for (;;)
{
char buff[1024];
int n;
if (!fgets(buff, sizeof(buff), fp))
break;
n = strlen(buff);
if (buff[n-1] == '\n')
buff[n-1] = '\0';
result = regexec(®ex, buff, 0, NULL, 0);
if (result == 0)
fprintf(stdout, "%s\n", buff);
}
return 0;
}
int
main(int argc, char **argv)
{
FILE *fp;
if (argc != 3)
{
fprintf(stderr, "usage: %s <regex> <filename>\n", argv[0]);
return 1;
}
fp = fopen(argv[2], "r");
if (!fp)
{
perror("fopen");
return 1;
}
return egrep(argv[1], fp);
}