使用cpp11正则表达式时的正则表达式错误

时间:2018-07-26 01:58:52

标签: regex c++11

我正在尝试使用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中的其他示例,但也失败了。

1 个答案:

答案 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);