在PowerShell中用新行替换方括号



我有下面的文本(来自api响应(。

$a = '[
{
"Id": "65486432",
"RecordType": 20
},
{
"Id": "d1b2abe9",
"RecordType": 20,
"ModelsSnapshots": []
}
]
[
{
"Id": "65486432",
"RecordType": 20
},
{
"Id": "d1b2abe9",
"RecordType": 20,
"ModelsSnapshots": []
}
]'

我需要将中间的方括号替换为">

]
[

所以最终的输出应该是这样的。注意还有";[]";在我不想更改的文本中。

'[
{
"Id": "65486432",
"RecordType": 20
},
{
"Id": "d1b2abe9",
"RecordType": 20,
"ModelsSnapshots": []
}
,
{
"Id": "65486432",
"RecordType": 20
},
{
"Id": "d1b2abe9",
"RecordType": 20,
"ModelsSnapshots": []
}
]'

我已经尝试了以下没有运气:

$a -replace "]`n[", ","

这在本例中有效,但在实际文件中无效,因此其他替代解决方案将受到赞赏。

您的文件可能包含CR&LF而不是仅LF。我建议使用以下正则表达式在这两种情况下都是安全的:

$a -replace "]`r?`n[", ","

它在某种程度上不是"quot;以及";[quot;,必须有更好的方法来做到这一点,但以下方法正在发挥作用。

首先我把";[]";带有一个占位符";XXXX";,则删除"]"以及";[",最后将"XXXX"替换为"[]";。。。

$a -replace "[]", "XXXX" -replace "[", "" -replace "]", "" -replace "`n"," " -replace "`r"," " -replace "Z", "," -replace "XXXX", "[]"

相关内容

  • 没有找到相关文章

最新更新