1、匹配数字、字符、下划线
BOOL RegexMatch(CString sourceStr)
{
CAtlRegExp<CAtlRECharTraitsW> reRule;
wchar_t *wt = L"^[A-Za-z0-9-_]+$"; //只能输入由数字和26个英文字母和'-''_'组成的字符串
REParseError status = reRule.Parse((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)wt);
if (REPARSE_ERROR_OK != status){
return FALSE; //正则表达式解析错误
}
CAtlREMatchContext<CAtlRECharTraitsW> mcRule;
wt = (wchar_t *)(LPCTSTR)sourceStr;
if (!reRule.Match((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)wt,&mcRule)){
return FALSE; //匹配错误
}
return TRUE; //匹配成功
}
2、匹配键盘可显字符
BOOL RegexMatchKeyChar(CString sourceStr)
{
CAtlRegExp<CAtlRECharTraitsW> reRule;
wchar_t *wt = L"^[[\x20-\x7e]]+$"; //只能输入键盘上的可显字符
REParseError status = reRule.Parse((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)wt);
if (REPARSE_ERROR_OK != status){
return FALSE; //正则表达式解析错误
}
CAtlREMatchContext<CAtlRECharTraitsW> mcRule;
wt = (wchar_t *)(LPCTSTR)sourceStr;
if (!reRule.Match((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)wt,&mcRule)){
return FALSE; //匹配错误
}
return TRUE; //匹配成功
}