POSIX 规定了正则表达式的C语言库函数, 参见regex(3), 我们已经学了很多C函数的用法 读者应该具备自己看懂man手册的能力
C语言中使用正则表达式一般分为三步:
1.编译正则表达式regcomp()
2.匹配正则表达式 regexec()
3.释放正则表达式 regfree()
先来通过一个demo展示一下这三个函数的用法
#include
效果:
下边是对这三个函数的详细解释
一. regcomp()这个函数把指定的正则表达式pattern编译成一种 特定的数据格式compiled, 这样使匹配更加有效
函数regexec()会使用这个数据在目标文件中匹配,执行成功返回0。
int regcomp(regex_t * compiled, const char* pattern, int cflags)
regex_t :是一个结构体类型,用来存储编译后的正则表达式,它的成员re_nsub用来存储正则表达式中的的正则表达式的个数
子正则表达式就是用括号括起来的那部分(在上一篇 我已经给大家事例过了)
pattern: 指向我们写好的正则表达式字符串的首地址
cflags: 这个参数有四个值:可以把它们用 “ | ” 连接起来
1.REG_EXTENDED :以功能更加强大的扩展正则进行匹配
2.REG_ICASE : 匹配字母是忽略大小写
3.REG_NOSUB: 不用存储匹配后的结果,只要返回是否成功匹配。如果设置该标记,那么 regexec()将忽略nmatch和
pmatch两个参数
4.REG_NEWLINE: 识别换行符 这样 “^”就可以从行的开头进行匹配 "$"就可以从行的结尾开始匹配
更多技术分享与交流点击关注,加入C/C++学习交流群:587250700和大家一起交流学习。