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

PowerShell中Regex.Replace方法未替换首个匹配项问题求助

PowerShell正则替换失效问题解决办法

你的问题出在没有将正则替换的结果赋值回变量。[regex]类型的Replace方法不会直接修改原字符串变量,而是返回一个新的替换后的字符串,你需要把这个结果重新赋值给$lineadd,后续才能使用替换后的内容。

修改后的代码如下:

while(1) {
    $prompt = read-host -prompt [edit]
    if($prompt -eq "exit") {
        Write-Output("Exiting edit.")
        exit
    }
    if($prompt.StartsWith("add")) {
        $lineadd = $prompt
        [regex]$pattern = "add"
        # 将替换结果赋值回变量
        $lineadd = $pattern.Replace($lineadd, "", 1)
        Add-Content -Path ".\$file" -Value "$lineadd"
        Get-Content ".\$file"
  }
}

另外,也可以用PowerShell原生的-replace操作符简化代码,效果一致:

$lineadd = $lineadd -replace "^add", "", 1

这里加^锚定字符串开头,确保只替换开头的"add",和你用StartsWith判断的逻辑更匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:42:46