You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code正则修复XML畸形标签:仅替换正则指定片段的问题

修复XML中Polygon自闭合标签的正则方案

嘿,我帮你搞定这个VS Code里的正则问题!针对你提到的构建后<polygon>标签被错误嵌套成子标签的情况,我们可以用精准的正则捕获组来保留正确部分,只替换错误的闭合内容。

核心思路

我们需要:

  • 仅匹配带有含小数点数字的points属性的<polygon>标签
  • 保留标签开头到points属性结束双引号后的有效内容
  • 把错误的闭合部分(比如>...</polygon>或单纯的>)替换为标准自闭合的/>

具体正则表达式

搜索模式(开启正则模式后使用)

(<polygon[^>]*points="[^"]*(?:\d+\.\d+|\d+)+"[^>]*)>(?:.*?</polygon>)?

替换模式

$1/>

正则解释

  • (<polygon[^>]*points="[^"]*(?:\d+\.\d+|\d+)+"[^>]*):第一个捕获组,保留从<polygon开始,到points属性结束双引号之后、标签闭合前的所有正确内容(确保points里包含数字和小数点)
  • >(?:.*?</polygon>)?:匹配错误的闭合逻辑——要么是>后跟任意内容再闭合</polygon>,要么是单纯的>(非自闭合),用非捕获组(?:)避免替换时影响保留的内容

VS Code操作步骤

  1. 打开查找替换面板:按下Ctrl+H(Windows/Linux)或Cmd+H(Mac)
  2. 点击面板右上角的.*按钮,开启正则表达式模式
  3. 将上面的搜索正则粘贴到「查找」框,替换正则粘贴到「替换」框
  4. 先点击「查找全部」确认只匹配目标<polygon>标签,避免误改其他元素
  5. 确认无误后点击「替换全部」即可修复所有错误标签

额外优化(可选)

如果你的points属性包含负号(比如-1.2),可以把搜索正则里的数字部分调整为:

(<polygon[^>]*points="[^"]*(?:-?\d+\.\d+|-?\d+)+"[^>]*)>(?:.*?</polygon>)?

内容的提问来源于stack exchange,提问作者curtybear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:04:56