Как разбить странную строку на правильные части - PullRequest
0 голосов
/ 02 октября 2019

Я получаю строку, подобную этой "ABC","edf",1.2,75,"zzz10"",763,"abc, fgh", из программы, и мне нужно разделить ее с помощью PowerShell до ожидаемого конечного результата: ABC|edf|1.2|75|zzz10"|763|abc, fgh

Моя идея состоит в том, чтобы разбить строку таким образом, чтобы создатьмассив, который я тогда могу -join '|'

дело в том - я не могу просто -split или -replace символы , и ", потому что если они окружены ""они должны быть в конечном результате

как бы вы пошли на это?

1 Ответ

0 голосов
/ 02 октября 2019

Вложенная одинарная кавычка в подстроке "zzz10"" должна быть удвоена, чтобы сделать данные правильными CSV. После этого вы можете обработать его так:

$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 '|' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...