我正在尝试使用std::regex
验证密码的复杂性,并获得一些示例,例如:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$
我将其翻译为
regex pwd_regex=regex(string("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,20}$"));
但是在运行时(gcc 4.8.5)出现错误代码为4的regex_error
异常。
怎么了?我尝试了this question中的其他示例,但也失败了。
答案 0 :(得分:0)
this question中使用的模式与您使用的模式不同,看起来像这样:
std::string str("password");
std::regex r("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,20}$");
std::smatch m;
std::regex_search(str, m, r);