65,211
社区成员
发帖
与我相关
我的任务
分享#include "stdafx.h"
#include <iostream>
#include <string>
#include "boost/regex.hpp"
using namespace boost;
using namespace std;
char* name_regex = "^([^\uFF00-\uFFFF])*([u4e00-\u9fa5|A-Za-z0-9])+$";
char* str1 = "^[^;~`\^@|:?></\\]+$";//问题就在这个转义字符\上,只要加进去就直接异常出红X了
//如果改为char* str1 = "^[^;~`\^@|:?></(\\)]+$";就不会,但是还是没有实现排除\的效果
bool regex_verify(const char* str1,char* regex_s)
{
boost::regex exampleregex(regex_s);
boost::cmatch result;
return boost::regex_search( str1, result, exampleregex );
}
int _tmain(int argc, _TCHAR* argv[])
{
const char* str = "hu\\1";
if (regex_verify(str,name_regex)&& regex_verify(str,str2))
{
cout<<"success========="<<endl;
}
else
{
cout<<"failed========="<<endl;
}
return 0;
}