我有下面的文本(来自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", "[]"