Ich habe eine Saite, die ich in zwei Teile aufteilen möchte. Das erste Stück ist vor dem Komma ( ,
) und das zweite Stück ist alles nach dem Komma (einschließlich der Kommas).
Ich habe bereits das erste Stück vor dem Komma in der Variablen $Header
gefunden, aber ich weiß nicht, wie ich die Teile nach dem ersten comma
in einer großen Zeichenfolge wiederherstellen soll, so dass es
Möglicherweise ist hier mehr Text sichtbar als zB Text 5, Text 6, ..
%Vor%Versuchen Sie etwas wie:
%Vor% Beim Teilen nach einem String verwenden Sie eine andere Signatur der Funktion split
.
Die grundlegende Verwendung benötigt nur ein Argument, ein Trennzeichen (mehr Informationen dazu finden Sie hier , zum Beispiel). Um jedoch Zeichenfolgen zu verwenden, lautet die Signatur wie folgt:
%Vor% Aus diesem Grund müssen Sie Ihre Zeichenfolge als String-Array darstellen. In diesem Fall verwenden wir die Option None
, aber Sie finden die anderen verfügbaren Optionen in der Dokumentation split
.
Schließlich, da der Wert von $Heasder,
am Anfang von $String
steht, müssen Sie das 2. Mitglied des resultierenden Arrays fangen.
Der Operator -split
von PowerShell unterstützt die Angabe der maximalen Anzahl von Teilzeichenfolgen, die zurückgegeben werden sollen, d. h. wie viele Teilzeichenfolgen zurückgegeben werden sollen. Geben Sie nach dem zu teilenden Muster die Anzahl der gewünschten Strings ein:
Diese alternative Lösung nutzt die Fähigkeit von PowerShell, Arrays mit einer einzigen Zuweisung an mehrere Variablen zu verteilen. Beachten Sie jedoch, dass sich der Operator -split
bei jedem Komma aufteilt und die von PowerShell integrierte Konvertierung von Array zurück in String dazu führt, dass die Elemente wieder verkettet werden. Es ist also nicht so effizient wie String.Split
, aber in Ihrem Beispiel ist es vernachlässigbar.
Schließlich ist $OFS
eine spezielle Variable in der PowerShell, die bestimmt, welches Zeichen verwendet wird, wenn die Array-Elemente in eine einzelne Zeichenfolge zurückgeführt werden. Standardmäßig ist es ein Leerzeichen. Aber es kann zu irgendetwas geändert werden.
Methode von Aaron ist die beste, aber ich schlage meine Lösung vor
%Vor%Tags und Links string split powershell