Diese Frage wurde bereits gestellt, aber ich habe versucht, eine Lösung in Powershell zu arbeiten, aber bekomme nicht die gewünschten Ergebnisse.Wie man eine Zeichenkette durch Komma trennt, Komma in Anführungszeichen zu ignorieren
$line = '1,2,"N",09/04/13,"P09042013ZSD(1,0)","ZSD"'
[string[]] $splitColumns = $line.Split('(,)(?=(?:[^"]|"[^"]*")*$)', [StringSplitOptions]'RemoveEmptyEntries')
Wenn ich Schleife obwohl die geteilten Werte Ich erwarte
1
2
"N"
09/04/13
"P09042013ZSD(1,0)"
"ZSD"
Aber bin immer
1
2
N
09/04/13
P09042013ZSD
1
0
ZSD
ich die Regex getestet mit http://regexhero.net/tester/ (Split) mit ExplicitCapture gesetzt und es gibt die gewünschten Ergebnisse.
Arbeitslösung
$RegexOptions = [System.Text.RegularExpressions.RegexOptions]
$csvSplit = '(,)(?=(?:[^"]|"[^"]*")*$)'
$splitColumns = [regex]::Split("StringHere", $csvSplit, $RegexOptions::ExplicitCapture)
Sie können einfach Verwenden Sie einfach Implode & explad für das ... –
Ich denke, das sind Zellen aus einer CSV-Datei oder so? Ich würde lieber sicherstellen, ein unbenutztes Zeichen wie '' '' 'für das Trennzeichen in der Quelldatei zu haben. – Simon
Quelldatei kann nicht berührt werden. – David