当我匹配的字符串是多行字符串时,我在使用 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;
}
最佳答案
您应该使用 regex_search
而不是 regex_match
。
顺便问一下,为什么不用 (.*)
而不是 (.*?)
?
关于C++ 正则表达式不匹配多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366324/