about_Split

KURZE BESCHREIBUNG

Erläutert, wie der Split-Operator verwendet wird, um eine oder mehrere Zeichenfolgen in Teilzeichenfolgen aufzuteilen.

LANGE BESCHREIBUNG

Der Split-Operator teilt eine oder mehrere Zeichenfolgen in Teilzeichenfolgen auf. Sie können die folgenden Elemente des Split-Vorgangs ändern:

  • Trennzeichen. Der Standardwert ist Leerraum. Sie können jedoch Zeichen, Zeichenfolgen, Muster oder Skriptblöcke angeben, die das Trennzeichen angeben. Der Split-Operator in PowerShell verwendet anstelle eines einfachen Zeichens einen regulären Ausdruck im Trennzeichen.
  • Maximale Anzahl von Teilzeichenfolgen. Standardmäßig werden alle Teilzeichenfolgen zurückgegeben. Wenn Sie eine Zahl angeben, die kleiner als die Anzahl der Teilzeichenfolgen ist, werden die verbleibenden Teilzeichenfolgen in der letzten Teilzeichenfolge verkettet.
  • Optionen, die die Bedingungen angeben, unter denen das Trennzeichen abgeglichen wird, z. B. SimpleMatch und Multiline.

SYNTAX

Das folgende Diagramm zeigt die Syntax für den Operator -split.

Die Parameternamen werden im Befehl nicht angezeigt. Schließen Sie nur die Parameterwerte ein. Die Werte müssen in der im Syntaxdiagramm angegebenen Reihenfolge angezeigt werden.

-Split <String>
-Split (<String[]>)
<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]
<String> -Split {<ScriptBlock>} [,<Max-substrings>]

Sie können -iSplit -cSplit oder in jeder -split binären Split-Anweisung (eine Split-Anweisung, die ein Trennzeichen oder einen Skriptblock enthält) ersetzen. Bei -iSplit -split den Operatoren und wird die Groß-/Kleinschreibung nicht beachtet. Beim -cSplit Operator wird die Groß-/Kleinschreibung beachtet. Dies bedeutet, dass die Groß-/Kleinschreibung berücksichtigt wird, wenn die Trennzeichenregeln angewendet werden.

PARAMETERS

<String> oder <String[]>

Gibt eine oder mehrere Zeichenfolgen an, die geteilt werden sollen. Wenn Sie mehrere Zeichenfolgen übermitteln, werden alle Zeichenfolgen mit den gleichen Trennzeichenregeln aufgeteilt.

Beispiel:

-split "red yellow blue green"
red
yellow
blue
green

<Delimiter>

Die Zeichen, die das Ende einer Teilzeichenfolge identifizieren. Das Standardtrennzeichen ist Leerzeichen, einschließlich Leerzeichen und nicht druckbarer Zeichen, z. B. "newline" ` (n) und tab ( ` t). Wenn die Zeichenfolgen aufgeteilt werden, wird das Trennzeichen in allen Teilzeichenfolgen weggelassen. Beispiel:

"Lastname:FirstName:Address" -split ":"
Lastname
FirstName
Address

Standardmäßig wird das Trennzeichen in den Ergebnissen weggelassen. Um das Trennzeichen ganz oder teilweise zu erhalten, schließen Sie den Teil, den Sie beibehalten möchten, in Klammern ein. Wenn der <Max-substrings> Parameter hinzugefügt wird, hat dies Vorrang, wenn der Befehl die Auflistung aufteilt. Wenn Sie ein Trennzeichen als Teil der Ausgabe verwenden möchten, gibt der Befehl das Trennzeichen als Teil der Ausgabe zurück. Das Teilen der Zeichenfolge, um das Trennzeichen als Teil der Ausgabe zurückgibt, zählt jedoch nicht als Teilung.

Beispiele:

"Lastname:FirstName:Address" -split "(:)"
Lastname
:
FirstName
:
Address

"Lastname/:/FirstName/:/Address" -split "/(:)/"
Lastname
:
FirstName
:
Address

<Max-substrings>

Gibt die maximale Anzahl von Teilzeichenfolgen an, die vom Teilungsvorgang zurückgegeben werden. Der Standardwert sind alle Teilzeichenfolgen, die durch das Trennzeichen geteilt werden. Wenn es weitere Teilzeichenfolgen gibt, werden sie mit der endgültigen Teilzeichenfolge verkettet. Wenn weniger Teilzeichenfolgen sind, werden alle Teilzeichenfolgen zurückgegeben. Der Wert 0 gibt alle Teilzeichenfolgen zurück.

Beispiel:

$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split ",", 5
Mercury
Venus
Earth
Mars
Jupiter,Saturn,Uranus,Neptune

Wenn Sie mehrere Zeichenfolgen (ein Array von Zeichenfolgen) an den Operator übermitteln, wird der Grenzwert separat -split Max-substrings auf jede Zeichenfolge angewendet.

$c = 'a,b,c','1,2,3,4,5'
$c -split ',', 3

a
b
c
1
2
3,4,5

<Max-substrings> gibt nicht die maximale Anzahl der zurückgegebenen Objekte an. Im folgenden Beispiel wird <Max-substrings> auf 3 festgelegt. Dies führt zu drei Teilzeichenfolgenwerten, aber insgesamt fünf Zeichenfolgen in der resultierenden Ausgabe. Das Trennzeichen wird nach den Aufteilungen eingeschlossen, bis das Maximum von drei Teilzeichenfolgen erreicht ist. Zusätzliche Trennzeichen in der endgültigen Teilzeichenfolge werden Teil der Teilzeichenfolge.

'Chocolate-Vanilla-Strawberry-Blueberry' -split '(-)', 3
Chocolate
-
Vanilla
-
Strawberry-Blueberry

Negative Werte geben die Menge der angeforderten Teilzeichenfolgen ab dem Ende der Eingabezeichenfolge zurück.

Hinweis

Unterstützung für negative Werte wurde in PowerShell 7 hinzugefügt.

$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split ",", -5
Mercury,Venus,Earth,Mars
Jupiter
Saturn
Uranus
Neptune

<ScriptBlock>

Ein Ausdruck, der Regeln zum Anwenden des Trennzeichens angibt. Der Ausdruck muss ausgewertet werden, um $true oder $false. Schließen Sie den Skriptblock in geschweifte Klammern ein.

Beispiel:

$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split {$_ -eq "e" -or $_ -eq "p"}
M
rcury,V
nus,
arth,Mars,Ju
it
r,Saturn,Uranus,N

tun

<Options>

Schließen Sie den Optionsnamen in Anführungszeichen ein. Optionen sind nur gültig, wenn der <Max-substrings> -Parameter in der -Anweisung verwendet wird.

Die Syntax für den Options-Parameter lautet:

"SimpleMatch [,IgnoreCase]"

"[RegexMatch] [,IgnoreCase] [,CultureInvariant]
[,IgnorePatternWhitespace] [,ExplicitCapture]
[,Singleline | ,Multiline]"

Die SimpleMatch-Optionen sind:

  • SimpleMatch: Verwenden Sie beim Auswerten des Trennzeichens einen einfachen Zeichenfolgenvergleich. Kann nicht mit RegexMatch verwendet werden.
  • IgnoreCase: Erzwingt, dass die Groß-/Kleinschreibung nicht beachtet wird, auch wenn der -cSplit-Operator angegeben ist.

Die RegexMatch-Optionen sind:

  • RegexMatch: Verwenden Sie den Abgleich regulärer Ausdrücke, um das Trennzeichen auszuwerten. Dies ist das Standardverhalten. Kann nicht mit SimpleMatch verwendet werden.
  • IgnoreCase: Erzwingt, dass die Groß-/Kleinschreibung nicht beachtet wird, auch wenn der -cSplit-Operator angegeben ist.
  • CultureInvariant: Ignoriert kulturelle Unterschiede in der Sprache beim Auswerten des Trennzeichens. Nur mit RegexMatch gültig.
  • IgnorePatternWhitespace: Ignoriert Leerzeichen und Kommentare ohne Leerzeichen und Kommentare, die mit dem Nummernzeichen (#) markiert sind. Nur mit RegexMatch gültig.
  • Mehrzeilige: Der Mehrzeilenmodus erzwingt, dass ^ und mit dem $ Anfangsende jeder Zeile anstatt dem Anfang und Ende der Eingabezeichenfolge übereinstimmen.
  • Singleline: Im Einzellinienmodus wird die Eingabezeichenfolge als SingleLine behandelt. Er erzwingt, dass das Zeichen mit jedem Zeichen (einschließlich Neulinien) abgleicht, anstatt mit jedem Zeichen außer der . Neue-Linien-- zu \n übereinstimmen.
  • ExplicitCapture: Ignoriert nicht benannte Übereinstimmungsgruppen, sodass nur explizite Erfassungsgruppen in der Ergebnisliste zurückgegeben werden. Nur mit RegexMatch gültig.

UNÄRE UND BINÄRE TEILUNGSOPERATOREN

Der unäre Teilungsoperator ( ) hat eine höhere -split <string> Rangfolge als ein Komma. Wenn Sie daher eine durch Komma getrennte Liste von Zeichenfolgen an den unären Teilungsoperator übermitteln, wird nur die erste Zeichenfolge (vor dem ersten Komma) aufgeteilt.

Verwenden Sie eines der folgenden Muster, um mehrere Zeichenfolgen zu teilen:

  • Verwenden des binären Teilungsoperator ( <string[]> -split <delimiter> )
  • Schließen Sie alle Zeichenfolgen in Klammern ein.
  • Speichern Sie die Zeichenfolgen in einer Variablen, und übermitteln Sie die Variable an den Teilungsoperator.

Betrachten Sie das folgenden Beispiel:

PS> -split "1 2", "a b"
1
2
a b
PS> "1 2", "a b" -split " "
1
2
a
b
PS> -split ("1 2", "a b")
1
2
a
b
PS> $a = "1 2", "a b"
PS> -split $a
1
2
a
b

BEISPIELE

Die folgende Anweisung teilt die Zeichenfolge bei Leerzeichen auf.

-split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

Windows
PowerShell
2.0
Windows
PowerShell
with
remoting

Die folgende Anweisung teilt die Zeichenfolge an einem beliebigen Komma auf.

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune

Die folgende Anweisung teilt die Zeichenfolge nach dem Muster "er" auf.

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er'
M
cury,Venus,Earth,Mars,Jupit
,Saturn,Uranus,Neptune

Die folgende Anweisung führt eine Teilung mit Teilung nach Dem Buchstaben "N" durch, bei der die Schreibung beachtet wird.

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'
Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,
eptune

Die folgende Anweisung teilt die Zeichenfolge bei "e" und "t".

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]'
M
rcury,V
nus,
ar
h,Mars,Jupi

r,Sa
urn,Uranus,N
p
un

Die folgende Anweisung teilt die Zeichenfolge bei "e" und "r", beschränkt die resultierenden Teilzeichenfolgen jedoch auf sechs Teilzeichenfolgen.

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6
M

cu
y,V
nus,
arth,Mars,Jupiter,Saturn,Uranus,Neptune

Die folgende Anweisung teilt eine Zeichenfolge in drei Teilzeichenfolgen auf.

"a,b,c,d,e,f,g,h" -split ",", 3
a
b
c,d,e,f,g,h

Die folgende Anweisung teilt eine Zeichenfolge beginnend am Ende der Zeichenfolge in drei Teilzeichenfolgen auf.

"a,b,c,d,e,f,g,h" -split ",", -3
a,b,c,d,e,f
g
h

Die folgende Anweisung teilt zwei Zeichenfolgen in drei Teilzeichenfolgen auf. (Der Grenzwert wird unabhängig auf jede Zeichenfolge angewendet.)

"a,b,c,d", "e,f,g,h" -split ",", 3
a
b
c,d
e
f
g,h

Die folgende Anweisung teilt jede Zeile in der here-Zeichenfolge an der ersten Ziffer auf. Sie verwendet die Option Multiline, um den Anfang jeder Zeile und Zeichenfolge zu erkennen.

0 stellt den Wert "return all" des Parameters Max-substrings dar. Sie können Optionen wie Multiline nur verwenden, wenn der Wert Max-substrings angegeben ist.

$a = @'
1The first line.
2The second line.
3The third of three lines.
'@
$a -split "^\d", 0, "multiline"

The first line.

The second line.

The third of three lines.

In der folgenden Anweisung wird der schräge Schrägstrich als Escapezeichen für das Punkttrennzeichen (.) verwendet.

Mit dem Standardwert RegexMatch wird der Punkt, der in Anführungszeichen (".") eingeschlossen ist, so interpretiert, dass er mit einem beliebigen Zeichen abgesehen von einem Zeilenumgrenzungszeichen übereinstimmen kann. Daher gibt die Split-Anweisung eine leere Zeile für jedes Zeichen mit Ausnahme von Zeilenumbruch zurück.

"This.is.a.test" -split "\."
This
is
a
test

Die folgende Anweisung verwendet die SimpleMatch-Option, um den Operator -split an die Interpretation des Punkttrennzeichens (.) zu richten.

0 stellt den Wert "return all" des Parameters Max-substrings dar. Sie können Optionen wie SimpleMatch nur verwenden, wenn der Max-substrings-Wert angegeben ist.

"This.is.a.test" -split ".", 0, "simplematch"
This
is
a
test

Die folgende Anweisung teilt die Zeichenfolge je nach Wert einer Variablen an einem von zwei Trennzeichen auf.

$i = 1
$c = "LastName, FirstName; Address, City, State, Zip"
$c -split $(if ($i -lt 1) {","} else {";"})
LastName, FirstName
 Address, City, State, Zip

SIEHE AUCH

Split-Path

about_Operators

about_Comparison_Operators

about_Join