C++ 11 regex_match与它必须的不匹配

Edw*_*d83 1 c++ regex c++11 visual-studio-2012

std::string pattern = "[disk0-9]";

std::regex regex(pattern, std::regex::ECMAScript);


std::string subject = "Disk1";

bool result = std::regex_match(subject, regex, std::regex_constants::match_any);


std::cout << result << std::endl;
Run Code Online (Sandbox Code Playgroud)

regex_match请问为什么返回假?

P0W*_*P0W 5

修复您的代码如下:

std::string pattern = "disk[0-9]";
std::regex regex(pattern, std::regex::ECMAScript | std::regex::icase); //Ignore Case
Run Code Online (Sandbox Code Playgroud)