包含头文件:
#include <regex.h>
调用方式:
string loginMsg = "ID:134579268PWD:15390710437Hywie#";
string patten = "^ID:[0-9]*PWD:([0-9]|[A-Z]|[a-z])*#";
if(!matchFunc(patten, loginMsg)) //格式不正确
{
string error = "格式错误";
...
}
匹配函数:
bool matchFunc(string patten, string str) //检测登录消息格式是否正确
{int rnt;
bool bFlag;
regex_t reg;
rnt = regcomp(®, patten.c_str(), REG_NOSUB | REG_EXTENDED | REG_ICASE);
if(rnt)
{
return false;
}
rnt = regexec(®, str.c_str(), 0, NULL, 0);
if(rnt == REG_NOERROR) //正确匹配,说明格式正确,返回true
{
bFlag = true;
}
else //匹配失败,消息格式错误,返回false
{
bFlag = false;
}
regfree(®);
return bFlag;
}