如何在Notepad++中用通配符替换文件扩展名及后续内容
批量替换SVG标签内容的正则方案
问题场景
现有示例代码:
<object class="imageSettings" data="../assets/FOM_SVG_140.svg" height="434.501282" style="max-width: 100%;height: auto;display: block;margin: auto;" type="image/svg+xml" width="486.747274">
需要批量修改为:
<object class="imageSettings" data="../assets/FOM_SVG_140.png ">
即把data属性里的.svg改成.png,同时删除.svg"到结尾>之间的所有属性内容。
正确正则替换规则
查找规则(正则表达式)
\.svg"[^>]+>
替换内容
.png ">
规则解释
\.svg":精准匹配.svg"这个字符串,定位到要修改的核心位置[^>]+:匹配所有**不是>**的字符,也就是.svg"到结尾>之间的所有多余属性>:匹配标签结尾的>,确保一次性替换完所有不需要的内容
操作步骤(以VS Code为例)
- 按
Ctrl+Shift+H打开批量替换面板 - 点击面板中的「正则表达式」按钮(图标为
.*) - 在「查找」框输入上述正则规则,「替换」框输入指定内容
- 先点击「查找全部」确认匹配范围正确,再点击「替换全部」完成批量修改
之前尝试的问题说明
你之前用的几个规则都存在问题:
.svg*>:这是通配符模式,*的匹配逻辑不适合处理带引号和属性的HTML结构,容易匹配错误内容\.svg.*$:匹配.svg到行尾的所有内容,但如果标签跨行会失效,且没有精准定位到结尾的>\svg.+$/\svg.*$:少了.svg前面的点,无法匹配.svg字符串,同样是错误匹配行尾内容
内容的提问来源于stack exchange,提问作者Bee
相关产品推荐
相关产品推荐

