C语言其实也可以直接使用自带的regex库进行一些基础的匹配操作,其实主要就是使用regcomp,regexec, regerror和regfree.具体的用法man一下就可以了。下面是一个范例。

$ cat mygrep.c
#include
#include
#include
#include
#define BUF_SIZE 8192
int main(int argc,char *argv[])
{
regex_t regex;
int reti;
char line_buf[BUF_SIZE];
FILE *FP;
long int count=0;
printf("regex is: %s\n",argv[1]);
reti=regcomp(®ex,argv[1],REG_EXTENDED);
if(reti){
perror("complie regex expression error!\n");
}
if( (FP=fopen(argv[2],"r"))==NULL){
perror("open file failed");
}
while(fgets(line_buf,BUF_SIZE,FP)){
```bash
                reti=regexec(®ex,line_buf,0,NULL,0);

if (reti==0){ ++count; } } regfree(®ex); printf("%ld\n",count); fclose(FP); return 0; }