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

如何用PowerShell正则移除含RG的{}包裹内容

移除含"RG "的JSON风格大括号块的PowerShell正则方案

需求说明

  • 批量处理目标目录(含子目录)下的.json、.vap、.vaj格式文件
  • 移除所有包含RG 字符串的{}包裹块(包含大括号本身)
  • 原方案依赖固定行数匹配,无法适配不同行数的块,需通用正则解决方案

改进后的PowerShell代码

Get-ChildItem $VAMfixDir -Recurse -Include *.json,*.vap,*.vaj | Where-Object { $timestamp -lt $_.CreationTime } |
Foreach-Object {  
    $originalContent = $_ | Get-Content -Raw
    # 匹配含RG 的任意行数{}块,同时处理块后可能存在的逗号,避免破坏格式
    $potentiallyModifiedContent = $originalContent -Replace '(?s)\s*{\s*[^}]*RG\s[^}]*}\s*(,)?', '$1'
    Set-Content -NoNewLine -Encoding Ascii -LiteralPath $_.FullName -Value $potentiallyModifiedContent
}

正则表达式解析

  • (?s):开启单行模式,让.匹配包括换行在内的所有字符,适配多行内容的块
  • \s*:匹配任意数量的空白字符(换行、空格、制表符),兼容不同缩进格式
  • {\s*[^}]*RG\s[^}]*}:匹配左大括号到右大括号的完整块,确保块内包含RG 字符串([^}]*匹配除右大括号外的任意内容)
  • (,)?:捕获块后面可能存在的逗号,避免删除块后留下多余逗号破坏JSON结构
  • '$1':保留捕获到的逗号(如果有),否则替换为空,保证文件格式合法性

示例效果验证

原始JSON结构:

"morphs" : [
        {
           "uid" : "AQ_Eun-Ju-Body-2022-31-7--15_02_30.592.vmi",
           "name" : "AQ_Eun-Ju-Body",
           "value" : "1"
        },
        {
           "uid" : "RG side2side.vmi",
           "name" : "RG side2side",
           "value" : "-0.3332869"
        }
     ]

处理后结果:

"morphs" : [
        {
           "uid" : "AQ_Eun-Ju-Body-2022-31-7--15_02_30.592.vmi",
           "name" : "AQ_Eun-Ju-Body",
           "value" : "1"
        }
     ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:45:24