最直接方式是用 std::regex_replace 配合正则如 "" 清除非嵌套、ascii-only 的简单标签;但因其不支持 unicode、嵌套及多行结构,且 gcc libstdc++ 有 bug,故不适用于 script/style 等复杂场景,推荐用 pugixml 等解析器安全处理。

用 std::regex_replace 移除指定 HTML 标签(如 <p></p>、<div>)<p>最直接的方式是正则替换,但要注意 C++11 的 <code>std::regex 对 Unicode 和嵌套标签完全无感,只适合简单、非嵌套、ASCII-only 的清理场景。比如清除所有 <b></b> 和 :
std::string html = "<b>hello</b> world <b>again</b>";
std::string clean = std::regex_replace(html, std::regex("?b>"), "");注意 ?b> 中的 /? 表示可选斜杠,能同时匹配开始和结束标签;但这个正则无法区分 <br> 或 <button></button>,因为 b 是字面量。为什么不用 std::regex 清除 <script></script> 或 <style></style> 块
std::regex 清除 <script></script> 或 <style></style> 块这类标签通常跨多行、含属性、内部有嵌套或注释,std::regex 无法安全处理。例如:<script type="text/javascript">var s = "<div>";</script> —— 正则很容易在引号内误匹配
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。










