如题
只说最有用最常用的。
使用正则的时候涉及到两个东西:“模式”和“待匹配字符串”。”模式”就是那些常见的正则表达式字符串,但是放在程序里需要有个特定的格式去存储使用,否则直接使用字符串去匹配效率太慢。”待匹配字符串”就是你要筛选的原始信息了。
所以在C中使用正则需要先把人类可读的”模式”转换为regex模块看到的结构regex_t
,这就是
1 | int regcomp(regex_t *preg, const char *regex, int cflags); |
干的事情,cflags
就是控制转换的一些细节的。
然后就可以来做筛选匹配了
1 | int regexec(const regex_t *preg, const char *string, size_t nmatch, |
匹配的结果放在regmatch_t
结构体中,nmatch
和pmathc[]
共同控制最多匹配多少组,eflags
还是控制一些细节问题。
结构体regmatch_t
为:
1 | typedef struct{ |
最后要释放掉正则的结构体:
1 | void regfree(regex_t *preg); |
当然还有错误信息:
1 | size_t regerror(int errcode, const regex_t *preg, char *errbuf, |
好了,最简单的使用就是这些了,使用的话可以参考这个