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:错误信息字符数组的长度