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

如何使用部分匹配与通配符替换CSV首个分隔符前的指定文本

解决方案

PowerShell 脚本方案

你的错误原因是正则规则书写错误:之前写的2122-*在正则逻辑里是匹配2122后面跟任意数量的-,不会匹配2122-后面的其他字符,所以只会新增前缀不会替换后续内容。
使用正确的正则规则即可实现需求:

# 替换为你自己的实际文件路径
$inputPath = "E:\path to file\file1.csv"
$outputPath = "E:\path to file\output.csv"

# 逐行处理,自动保留表头
Get-Content -Path $inputPath -Encoding Default | ForEach-Object {
    $_ -replace '^2122-[^,]+', '2122-GCE'
} | Set-Content -Path $outputPath -Encoding Default

规则说明:^2122-[^,]+中,^匹配行首位置,2122-匹配固定前缀,[^,]+匹配所有非逗号的连续字符,刚好覆盖第一列从2122-开头到第一个逗号前的全部内容。

批处理(.bat)方案

如果偏好使用批处理,可以用以下代码实现,兼容性提示:如果CSV中包含&、!等特殊字符,优先使用PowerShell方案:

@echo off
setlocal enabledelayedexpansion

:: 替换为你自己的实际文件路径
set "inputFile=E:\path to file\file1.csv"
set "outputFile=E:\path to file\output.csv"

type nul > "%outputFile%"

for /f "usebackq delims=" %%a in ("%inputFile%") do (
    set "line=%%a"
    if "!line:~0,5!"=="2122-" (
        for /f "delims=," %%b in ("!line!") do (
            set "line=!line:%%b=2122-GCE!"
        )
    )
    echo !line! >> "%outputFile%"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:24:03