C语言中使用正则表达式

int regcomp(regex_t *preg, const char *regex, int cflags);

说明

当正则表达式regex,不符合正则表达式语法规范时,regcomp函数调用会失败。否则,regcomp函数调用成功,并将编译好的结果存放在preg参数中,以便后序使用。

参数

  • preg:字符串regex编译成preg,preg作为输出参数
  • 正则表达式串regex
  • 标志位cflags
    • REG_EXTENDED:扩展正则
    • REG_ICASE:忽略大小写
    • REG_NEWLINE :识别换行符,可以识别^和$
    • REG_NOSUB:不用存储匹配后的结果,只返回是否成功匹配。如果设置该标志位,那么在regexec将忽略nmatch和pmatch两个参数,即REG_NOSUB的参数3和4分别取0和NULL值

int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags);

功能

判断编译好的正则表达式preg传入的正则表达式字符串string是否匹配match

参数

  • preg:regcomp函数编译好的正则表达式(regcomp函数编译后的传出结构体)
  • string:目标文本串
  • nmatch:regmatch_t结构体数组的长度
  • pmatch:regmatch_t结构体数组,存放匹配文本串的位置信息
  • eflags
    • REG_NOTBOL:让特殊字符^无作用
    • REG_NOTEOL:让特殊字符$无作用

void regfree(regex_t *preg);

功能

将编译好的正则表达式preg释放掉

size_t regerror(int errcode, const regex_t *preg, char *errbuf,size_t errbuf_size);

功能:

针对正则表达式的错误处理函数

参数

  • errcode:errcode的值 = 上面三个函数的返回值
  • preg:编译后的结构体
  • errbuf:保存错误信息的字符数组
  • errbuf_size:错误信息字符数组的长度

你可能感兴趣的:(Linux命令,/,shell编程)