Powershell 如何将奇怪的字符串拆分为正确的部分
我从一个程序中得到一个像这样的字符串:ABC、edf、1.2,75、ZZ10、763、ABC、fgh,我需要用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 | 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”“
部分需要考虑