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

批量替换多文本文件中符合正则匹配规则的指定字符串方法求助

批量替换多文本文件中符合正则匹配规则的指定字符串方法求助

兄弟我懂你这种批量处理一堆文件的头疼!之前也碰到过类似的情况,fnr.exe确实在正则替换这块有点局限,给你几个亲测好用的方案,都能批量搞定:

方案一:用Windows自带的PowerShell(无需额外安装软件)

直接用PowerShell的命令就能完成,核心是利用正则捕获组保留你要的数字部分,只替换目标值:

Get-ChildItem -Path "你的文件目录路径" -Filter "*.txt" -Recurse | ForEach-Object {
    (Get-Content $_.FullName) -replace 'rarePrefixTableLevelMax([0-2]?[0-9]|30),120,', 'rarePrefixTableLevelMax$1,500,' | Set-Content $_.FullName
}
  • 解释下:Get-ChildItem会递归遍历你指定目录下的所有txt文件;-replace里的$1对应你正则里捕获的那串数字(就是XX部分),这样就能精准替换掉120为500,完全保留前面的规则匹配内容。

方案二:Python脚本(跨平台通用,Windows/macOS/Linux都能用)

如果习惯用脚本,写个简单的Python脚本也很方便,灵活性更高:

import os
import re

# 定义匹配的正则模式
pattern = re.compile(r'rarePrefixTableLevelMax([0-2]?[0-9]|30),120,')
# 设置你要处理的目标目录
target_dir = "你的文件目录路径"

# 递归遍历目录下的所有文件
for root, dirs, files in os.walk(target_dir):
    for file in files:
        # 只处理txt文件,其他格式可以自己改后缀
        if file.endswith('.txt'):
            file_path = os.path.join(root, file)
            # 读取文件内容
            with open(file_path, 'r', encoding='utf-8') as f:
                content = f.read()
            # 执行替换操作
            new_content = pattern.sub(r'rarePrefixTableLevelMax\1,500,', content)
            # 把替换后的内容写回文件
            with open(file_path, 'w', encoding='utf-8') as f:
                f.write(new_content)
  • 注意:如果你的文件编码不是utf-8,可以把encoding='utf-8'改成对应的编码(比如gbk),避免乱码。

方案三:用Notepad++的批量替换功能(可视化操作,上手简单)

如果你更习惯图形界面操作,Notepad++的批量替换完全能满足需求:

  • 打开Notepad++,点击顶部菜单「搜索」→「在文件中查找」
  • 切换到「替换」标签页
  • 「查找内容」填入你的正则:rarePrefixTableLevelMax([0-2]?[0-9]|30),120,
  • 「替换为」填入:rarePrefixTableLevelMax\1,500,
  • 「目录」选择你要处理的文件夹,勾选「递归查找子文件夹」,「文件类型」填*.txt
  • 最后点击「全部替换」,等着完成就行,操作直观还能看到替换进度。

备注:内容来源于stack exchange,提问作者Question

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:39:40