regerror(z, ®, 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(®);
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(®);
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就指向子串後面的地址從而標識下一個要查找的源串