最近用到MFC中对密码进行验证,因此对正则表达式进行了简单的研究,总结如下:
1. 头文件支持:
#include <regex>
2. std::regex不支持CString类型的模式设置和字符串匹配,需要进行转换, 可以考虑将其转换为std::string.
CString cstrPassword;
CT2CA tempPassword(cstrPassword);
std::string strPassword(tempPassword);
3. 正则表达式的应用
std::regex regPattern("[0-9a-zA-Z]{6,}");<span style="white-space:pre"> </span>// at least 6 charaters of digit or letter
BOOL bValid = std::regex_match(strPassword, regPattern);
其他较复杂密码规则的正则表达式如:
^(?=.*\d+)(?=.*[a-z]+)(?=.*[A-Z]+).*$<span style="white-space:pre"> </span>// contains at least one digit, one lowercase letter and one uppercase letter
以上。