歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

  z = regcomp(&reg, (const char*)pattern, cflags);

  if(z)   //此處為 if(z != 0), 因為C語言裡0永遠為非(False), 任何非0值都為真(True)

  {

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

  perror("reg1");

  fprintf(stderr, "%s: pattern '%s'\n", ebuf, pattern);

  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;

  }

  /**

  *

  * 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");

Copyright © Linux教程網 All Rights Reserved