插件窝 干货文章 如何用正则表达式高效替换文件名后缀,为.js和.css文件添加.min前缀?

如何用正则表达式高效替换文件名后缀,为.js和.css文件添加.min前缀?

css 正则 表达式 文件 486    来源:    2025-03-25

使用正则表达式高效替换文件名后缀

要为 .js.css 文件添加 .min 前缀,可以使用正则表达式进行批量重命名。以下是几种常见场景下的解决方案:

1. 在命令行中使用 rename 工具 (Linux/macOS)

rename 's/\.(js|css)$/.min.$1/' *.js *.css

这个命令会: - 匹配所有以 .js.css 结尾的文件 - 将后缀替换为 .min.js.min.css - $1 代表正则表达式中第一个捕获组的内容 (即 jscss)

2. 使用 PowerShell (Windows)

Get-ChildItem -File -Include *.js,*.css | Rename-Item -NewName { $_.Name -replace '\.(js|css)$','.min.$1' }

3. 在 Node.js 脚本中

const fs = require('fs');
const path = require('path');

const files = fs.readdirSync('.').filter(file => 
  /\.(js|css)$/i.test(file)
);

files.forEach(file => {
  const newName = file.replace(/\.(js|css)$/i, '.min.$1');
  fs.renameSync(file, newName);
  console.log(`Renamed ${file} to ${newName}`);
});

4. 在 Python 脚本中

import os
import re

pattern = re.compile(r'\.(js|css)$')

for filename in os.listdir('.'):
    if pattern.search(filename):
        new_name = pattern.sub('.min.\\1', filename)
        os.rename(filename, new_name)
        print(f"Renamed {filename} to {new_name}")

注意事项

  1. 备份文件:在执行批量重命名操作前,建议先备份文件
  2. 测试命令:可以先使用 echo-WhatIf (PowerShell) 预览将要执行的操作
  3. 大小写敏感:如果需要处理大小写混合的后缀,可以在正则表达式中添加 i 标志(不区分大小写)
  4. 递归处理:如果需要处理子目录中的文件,需要添加递归参数

这些方法都能高效地将 .js.css 文件重命名为 .min.js.min.css 格式。