如何用PowerShell替换JSON文件中的指定冒号为连字符
PowerShell替换JSON中特定冒号为短横线的实现方法
我有一个JSON文件,内容片段如下:
"result": "1:3", "points": "29:37",
需要将其中值里的冒号替换为短横线,修改后效果如下:
"result": "1-3", "points": "29-37",
希望用PowerShell结合正则表达式完成这个操作,该如何实现?
可以通过PowerShell的文件读写结合正则替换来实现,具体命令如下:
# 读取JSON文件内容,替换目标冒号后写回原文件 (Get-Content -Path "your-file-path.json" -Raw) -replace '"(\d+):(\d+)"', '"$1-$2"' | Set-Content -Path "your-file-path.json"
说明:
-Raw参数:一次性读取整个文件内容,避免逐行处理可能出现的问题- 正则表达式
"(\d+):(\d+)":精准匹配引号内的数字组+冒号+数字组,不会误改JSON结构里的键值对冒号 - 替换字符串
"$1-$2":用第一组匹配的数字、短横线、第二组匹配的数字替换原内容,保留引号
如果需要先预览修改结果而不写入文件,可以去掉管道后的写入命令:
(Get-Content -Path "your-file-path.json" -Raw) -replace '"(\d+):(\d+)"', '"$1-$2"'
内容的提问来源于stack exchange,提问作者Anders
相关产品推荐
相关产品推荐

