Powershell 如何将奇怪的字符串拆分为正确的部分

Powershell 如何将奇怪的字符串拆分为正确的部分,powershell,Powershell,我从一个程序中得到一个像这样的字符串:ABC、edf、1.2,75、ZZ10、763、ABC、fgh,我需要用PowerShell将其拆分为预期的最终结果:ABC | edf | 1.2 | 75 | zzz10 | 763 | ABC、fgh 我的想法是以一种创建数组的方式拆分字符串,然后我可以-连接'|' 问题是-我不能只-拆分或-替换字符,和“”,因为如果这些字符被“包围,它们就需要在最终结果中 你会怎么做呢?子字符串“zzz10”“中嵌套的单引号需要加倍以使数据正确。之后,您可以像这样处

我从一个程序中得到一个像这样的字符串:ABC、edf、1.2,75、ZZ10、763、ABC、fgh,我需要用PowerShell将其拆分为预期的最终结果:
ABC | edf | 1.2 | 75 | zzz10 | 763 | ABC、fgh

我的想法是以一种创建数组的方式拆分字符串,然后我可以
-连接'|'

问题是-我不能只
-拆分
-替换
字符
”,因为如果这些字符被
包围,它们就需要在最终结果中


你会怎么做呢?

子字符串
“zzz10”“
中嵌套的单引号需要加倍以使数据正确。之后,您可以像这样处理它:

$s = '"ABC","edf",1.2,75,"zzz10"",763,"abc, fgh"'

$s -replace '"",', '""",' |
    ConvertFrom-Csv -Header a,b,c,d,e,f,g |
    ForEach-Object { $_.PSObject.Properties.Value -join '|' }

对我来说,这看起来像是一个几乎带引号的字符串和不带引号的数字。无需拆分,只需使用
|
连接即可。
$weirdstring.GetType()
向您展示了什么?@Theo我从另一个程序中以字符串的形式将其传递给您。它们基本上是
&myScript.ps1“weirdString”
-如果我试图通过将其包装成
@()
来将其作为数组,这是一个语法错误,因为
“zzz10”“
部分需要考虑