C++正则表达式不匹配多行字符串

Nik*_*a C 5 c++ regex

当字符串Im匹配是多行字符串时,我遇到了C++ 0x正则表达式的问题.这是我试图使用的代码片段:

std::smatch regMatch;
std::string data = "<key>id</key><string>1</string>\n<key>user</key><string>admin</string>";
if (std::regex_match(data, regMatch, std::regex("<key>user</key><string>(.*?)</string>"))) {
    std::cout << "Reg match: " << regMatch[1].str() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

小智 6

你应该使用regex_search而不是regex_match.

顺便说一句,为什么不用(.*)而不是(.*?)