歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LinuxC支持正則表達式的字符串替換函數(三)

LinuxC支持正則表達式的字符串替換函數(三)

日期:2017/2/25 10:38:17   编辑:Linux教程

  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;

  }

  /*

  * 正則表達式替換函數

  */

  char *cns_str_ereplace(char *src, const char *pattern, const char *newsubstr)

  {

  //如果pattern和newsubstr串相等,則直接返回

  if(!strcmp(pattern, newsubstr)) //if(strcmp(pattern, newsubstr)==0)

  return src;

  //定義cns_reg的返回類型結構變量

  reg_rtn_struct reg_rtn_struct_var;

  int rtn = 0; //reg_rtn_struct_var.rtn

  int pstart = 0; //reg_rtn_struct_var.pstart

  int pend = 0; //reg_rtn_struct_var.pend

  //把源串預dest

  char *dest=src; //替換後生成的串指針

  char *pstr=src; //當找到串時,pstr就指向子串後面的地址從而標識下一個要查找的源串

Copyright © Linux教程網 All Rights Reserved