我使用此代码来验证电子邮件ID,我很少有错误我不知道如何解决它,我是MFC的新手,如果我很傻请原谅我
BOOL CMailDlg::Validate(CString m_sFrom)
{
m_sFrom = NulltoString(m_sFrom);
CString strRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
Regex re = new Regex(strRegex);
if (re.IsMatch(m_sFrom))
return (true);
else
return (false);
}
错误:
错误C2511:'验证':'CMailDlg'中找不到重载的成员函数'int(class CString)'
查看'CMailDlg'的声明
错误C2059:语法错误:'数字上的错误后缀'
错误C2018:未知字符'0x40'
错误C2017:非法转义序列
答案 0 :(得分:1)
您需要在引号中包含正则表达式字符串并转义\。 C ++没有正则表达式的原生支持,你可能会发现它是Perl,它是用字符串实现的。 \是C ++转义字符,用于将新行包含在字符串中,因此如果您想在字符串中使用实际\,则必须将其加倍。
CString strRegex = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/";