POSIX 规定了C语言正则表达式库函数
regcomp():编译正则表达式
regexec():匹配正则表达式
regfree():释放正则表达式
成功返回0,失败返回错误号
compiled:结构体,用来存放编译后的正则表达式,(字符串变成结构体)
pattern:指向正则表达式的指针
cflags:指定是用基础正则(直接传0)还是扩展正则,(可以通过|取多个值)值如下:
REG_EXTENDED :使用扩展正则
REG_ICASE :匹配字母时忽略大小写
REG_NOSUB:不用存储匹配后的结果,只返回是否成功匹配。如果设置该标志位,则在regexec中将忽略nmatch和pmatch两个参数。即:传入该参数后,regexec中nmatch 取0,matchptr取NULL。
REG_NEWLINE:识别换行符,即从^开头开始匹配,从$行为开始匹配。
成功返回0,失败返回错误号
compiled:regcomp 编译好的结构体
string:待用正则表达式进行匹配的字符串(目标文件中的一行)
nmatch,matchptr:
matchptr返回匹配的每一行;nmatch返回匹配的行数。
eflags:
REG_NOTBOL:让特殊字符^无作用
REG_NOTEOL:让特殊字符$无作用
typedef struct{
regoff_t rm_so; // start... 保存匹配了字符串起始位置
regoff_t rm_eo; // end.. 保存匹配了字符串结束位置
}regmatch_t;
释放结构体。
针对正则表达式的错误处理函数
errcode :传入1.2函数的返回值,判断错误类型
buffer:错误信息。
length:buffer的长度,若错误信息的长度大于这个值,则regerror函数会自动截断超出的字符串,
但仍会返回完整的字符串长度,故可以用如下方法先的到错误字符串的长度:
size_t length = regerror(errcode,compiled,NULL,0);
本文地址:https://blog.csdn.net/modi000/article/details/107296054
如对本文有疑问, 点击进行留言回复!!
知识梳理(新增日期类&正则表达式&泛型&迭代器&比较器& 基于Pinyin4J实现中文排序)
荐 Machine Learning——sklearn系列(一)——回归
php 正则去掉<p> </p> 空格 与<p><br/></p>
网友评论