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

PowerShell如何用正则匹配替换以][开头的行修复破损JSON

问题原因
  • 你使用Get-Content -Raw参数将整个文件读取为单个完整字符串,PowerShell 正则默认规则下,^锚点只会匹配整个字符串的起始位置,不会识别每行的行首位置,所以无法匹配到行开头的][字符。
  • 你用的在线正则验证工具默认开启了多行匹配模式,所以测试可以命中,和PowerShell默认行为不一致才会出现匹配失败的情况。
  • 正则中[是元字符,未转义的情况下存在解析歧义,也会小概率影响匹配结果。
解决方法

在正则开头添加(?m)修饰符开启多行匹配模式,同时转义正则元字符[保证匹配准确性,替换命令如下:

$text -replace '(?m)^\]\[.*', ',' | Out-File -FilePath text_modified.json -Encoding UTF8

执行后所有以][开头的行都会被替换为逗号。

补充优化建议

你当前要修复的是拼接错误的多段JSON数组,替换完成后得到的内容是多段JSON用逗号分隔的结构,还需要在外层包裹一层[]才能得到合法的JSON文件,可直接用以下命令一步生成合法JSON:

$fixedJson = "[$($text -replace '(?m)^\]\[.*', ',')]"
$fixedJson | Out-File -FilePath text_modified.json -Encoding UTF8
# 可直接解析验证
$fixedJson | ConvertFrom-Json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:51:04