C语言 处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),
C语言中使用正则表达式一般分为三步:
编译正则表达式 regcomp()
匹配正则表达式 regexec()
释放正则表达式 regfree()

本篇文章主要是通过regcomp()、regexec()、regerror()、regfree()函数在c中的应用,复习正则表达式的用法。

程序一、email地址验证:

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <regex.h>
  4. int main( int argc, char * argv)
  5. {
  6. int status,i;
  7. int cflags=REG_EXTENDED;
  8. regmatch_t pmatch[1];
  9. const size_t nmatch=1;
  10. regex_t reg;
  11. const char *pattern= "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*.\\w+([-.]\\w+)*$" ;
  12. char *buf= "sdlcwangsong@sina.cn" ;
  13. regcomp(&reg,pattern,cflags);
  14. status=regexec(&reg,buf,nmatch,pmatch,0);
  15. if (status==REG_NOMATCH)
  16. printf( "No Match\n" );
  17. else if (status==0){
  18. printf( "Match:\n" );
  19. for (i=pmatch[0].rm_so;i<pmatch[0].rm_eo;i++)
  20. putchar(buf[i]);
  21. printf( "\n" );
  22. }
  23. regfree(&reg);
  24. return 0;
  25. }
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <regex.h>
  4. int main( int argc, char * argv)
  5. {
  6. int status,i;
  7. int cflags=REG_EXTENDED;
  8. regmatch_t pmatch[1];
  9. const size_t nmatch=1;
  10. regex_t reg;
  11. const char *pattern= "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]).){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$" ;

  12. char *buf= "192.68.16.39" ;
  13. regcomp(&reg,pattern,cflags);
  14. status=regexec(&reg,buf,nmatch,pmatch,0);
  15. if (status==REG_NOMATCH)
  16. printf( "No Match\n" );
  17. else if (status==0){
  18. printf( "Match:\n" );
  19. for (i=pmatch[0].rm_so;i<pmatch[0].rm_eo;i++)
  20. putchar(buf[i]);
  21. printf( "\n" );
  22. }
  23. regfree(&reg);
  24. return 0;
  25. }
执行结果: C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),C语言中使用正则表达式一般分为三步:编译正则表达式 regcomp()匹配正则表达式 regexec()释放正则表达式 regfree()本篇文章主要是通过regcomp()、regexec()、regerror()、regfree()函数在c中的应用,复习
C语言处理 正则表达式 常用的函数有regcomp()、regexec()、regfree()和regerror(), C语言 使用 正则表达式 一般分为三步: 编译 正则表达式 regcomp() 匹配 正则表达式 regexec() 释放 正则表达式 regfree() 本篇文章主要是通过regcomp()、regexec()、regerror()、regfree()函数在c 的应用,复习正则
在实际开发 ,作一些字符串的匹配时, 使用 正则表达式 来过滤匹配,代码更加简洁、匹配更加精准。为此,想到引入一个问题来总结记录一下 Linux C 正则表达式 使用 方法。   要求用户输入一串类似 IP地址 的字符串,该程序通过调用C库提供的 正则表达式 接口来实现判断用户输入的 IP 是否合法。
pcre *pcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr); 功能:...