我在处理XML标记时遇到问题(例如<smth a="xxxx">important data</smth>
)。要做到这一点,我正在使用这个
std::string ex = "(<)|(>)|(&)|(")|(')";
std::string fmt ="(?1<)(?2>)(?3&)(?4\")(?5')"; // replace just html tags
ex += "|(<a href(.*?)\">)|(</a>)|(<quote(.*?)>)|(</quote>)"; // strip else
boost::regex expr(ex);
std::string s2 = boost::regex_replace(src, expr, fmt, boost::match_default | boost::format_all);
但我注意到它导致内存泄漏。也许我做错了什么或有更有效的方式?