Linux C支持正则表达式的字符串替换函数

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  /**

  *

  * reg 指向编译后的正则表达式

  * str 指向将要进行匹配的字符串

  * pm str字符串中可能有多处和正则表达式相匹配, pm数组用来保存这些位置

  * nmacth 指定pm数组最多可以存放的匹配位置数

  *

  * @return 函数匹配成功后,str+pm[0].rm_so到str+pm[0].rm_eo是第一个匹配的子串

  * str+pm[1].rm_so到str+pm[1].rm_eo是第二个匹配的子串

  * ….

  */

  z = regexec(&reg, str, nmatch, pm, 0);

  //没有找到匹配数据

  if(z == REG_NOMATCH)

  {

  reg_rtn_struct_var.rtn = 1;

  reg_rtn_struct_var.pstart = -1;

  reg_rtn_struct_var.pend = -1;

  regfree(&reg);

  return reg_rtn_struct_var;

  }

  else if(z) //if(z !=0)

  {

  perror(“reg3”);

  regerror(z, &reg, ebuf, sizeof(ebuf));

  fprintf(stderr, “%s: regcomp(‘%s’)\n”, ebuf, str);

  reg_rtn_struct_var.rtn = 1;

  reg_rtn_struct_var.pstart = -1;

  reg_rtn_struct_var.pend = -1;

  regfree(&reg);

  return reg_rtn_struct_var;

  }

  /*列出匹配的位置*/

  if(pm[0].rm_so != -1)

  {

  reg_rtn_struct_var.rtn = 0;

  reg_rtn_struct_var.pstart = pm[0].rm_so;

  reg_rtn_struct_var.pend = pm[0].rm_eo;

  }

  regfree(&reg);

  return reg_rtn_struct_var;

  }

[1][2][3]

可以有一个人陪着你,也可以你一个人,总之那一刻,

Linux C支持正则表达式的字符串替换函数

相关文章:

你感兴趣的文章:

标签云: