我试图在MS VC ++ 2012中使用c ++ std :: regex实现一个简单的字符串测试方法。
const std::string str = "1.0.0.0029.443";
if ( std::regex_match( str, std::regex( "\\.0\\d+" ) ) )
std::cout << "matched." << std::endl;
我猜想代码会匹配给定str的“ .0029”部分。但是,它根本不匹配。我在http://regex101.com/上尝试了它,并成功了。
使用std::regex_search
代替来返回您的子匹配。
const std::string str = "1.0.0.0029.443";
std::regex rgx("(\\.0[0-9]+)");
std::smatch match;
if (std::regex_search(str.begin(), str.end(), match, rgx)) {
std::cout << match[1] << '\n';
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句