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

如何在VSCode中使用正则表达式搜索替换.html文件名内的连字符为下划线

问题原因

你原来的正则写法只能匹配到文件名中最后一个连字符,单次替换仅能修改一处,自然达不到全量替换的效果。

解决方案

核心思路是精准匹配仅属于.html文件名部分的连字符,避开路径前缀中的连字符,实现全量替换:

  1. 匹配规则使用正则:-(?=[^\/]*\.html$)
    • 规则解释:匹配所有连字符-,要求该连字符后续内容中不存在路径分隔符/(说明处于最后一段路径即文件名内),且结尾为.html后缀,完美避开路径前缀中的连字符。
  2. 替换内容直接填_,开启全局替换即可。

不同场景的实现示例

  • 编辑器(VS Code/Notepad++)搜索替换:
    搜索框输入上述正则,替换框输入_,勾选「正则模式」和「全局替换」后执行即可。
  • Python 代码实现:
import re

file_path = "/abc/123-def-xyzz.html"
processed_path = re.sub(r'-(?=[^\/]*\.html$)', '_', file_path)
# 输出结果:/abc/123_def_xyzz.html
  • Shell 脚本实现(推荐用perl适配性更强):
echo "/abc/123-def-xyzz.html" | perl -pe 's/-(?=[^\/]*\.html$)/_/g'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:57:05