Freigeben über


Informationen zu Split

KURZE BESCHREIBUNG

Erläutert, wie Sie den Split-Operator verwenden, 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 Leerzeichen, aber Sie können Zeichen, Zeichenfolgen, Muster oder Skriptblöcke angeben, die das Trennzeichen angeben. Der Split-Operator in PowerShell verwendet einen regulären Ausdruck im Trennzeichen anstelle eines einfachen Zeichens.
  • 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 restlichen Teilzeichenfolgen in der letzten Teilzeichenfolge verkettet.
  • Optionen, die die Bedingungen angeben, unter denen das Trennzeichen übereinstimmt, z. B. SimpleMatch und Multiline.

SYNTAX

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

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 oder -cSplit für -split in jeder binären Split-Anweisung (eine Split-Anweisung, die ein Trennzeichen oder einen Skriptblock enthält) ersetzen-iSplit. Bei den -iSplit Operatoren und -split wird die Groß-/Kleinschreibung nicht beachtet. Beim -cSplit Operator wird die Groß-/Kleinschreibung beachtet, was bedeutet, dass die Groß-/Kleinschreibung berücksichtigt wird, wenn die Trennzeichenregeln angewendet werden.

PARAMETERS

<String> oder <String[]>

Gibt eine oder mehrere zu teilende Zeichenfolgen an. Wenn Sie mehrere Zeichenfolgen übermitteln, werden alle Zeichenfolgen mit den gleichen Trennzeichenregeln aufgeteilt.

Beispiel:

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

<Trennzeichen>

Die Zeichen, die das Ende einer Teilzeichenfolge identifizieren. Das Standardtrennzeichen ist Leerzeichen, einschließlich Leerzeichen und nicht druckbarer Zeichen, z. B. Zeilenumbruch ('n) und Tabulatorzeichen ('t). Wenn die Zeichenfolgen geteilt werden, wird das Trennzeichen von 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 beizubehalten, schließen Sie den Teil, den Sie beibehalten möchten, in Klammern ein. Wenn der <Parameter Max-substrings> hinzugefügt wird, hat dies Vorrang, wenn Ihr Befehl die Auflistung aufteilt. Wenn Sie ein Trennzeichen als Teil der Ausgabe einschließen möchten, gibt der Befehl das Trennzeichen als Teil der Ausgabe zurück. Das Aufteilen der Zeichenfolge, um das Trennzeichen als Teil der Ausgabe zurückzugeben, zählt jedoch nicht als Split.

Beispiele:

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

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

Im folgenden Beispiel <ist max-substrings> auf 3 festgelegt. Dies führt zu drei Aufteilungen der Zeichenfolgenwerte, aber insgesamt fünf Zeichenfolgen in der resultierenden Ausgabe; das Trennzeichen wird nach den Teilungen eingeschlossen, bis das Maximum von drei Teilzeichenfolgen erreicht ist. Zusätzliche Trennzeichen in der letzten Teilzeichenfolge werden Teil der Teilzeichenfolge.

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

<Max. Teilzeichenfolgen>

Gibt die maximale Anzahl von Teilen einer Zeichenfolge an. Der Standardwert sind alle Teilzeichenfolgen, die durch das Trennzeichen geteilt werden. Wenn weitere Teilzeichenfolgen vorhanden sind, werden diese mit der endgültigen Teilzeichenfolge verkettet. Wenn weniger Teilzeichenfolgen vorhanden sind, werden alle Teilzeichenfolgen zurückgegeben. Ein Wert von 0 und negative Werte geben alle Teilzeichenfolgen zurück.

Max-Teilzeichenfolgen geben nicht die maximale Anzahl zurückgegebener Objekte an. sein Wert entspricht der maximalen Anzahl von Teilen einer Zeichenfolge. Wenn Sie mehrere Zeichenfolgen (ein Array von Zeichenfolgen) an den Split-Operator übermitteln, wird der Grenzwert max-substrings separat auf jede Zeichenfolge angewendet.

Beispiel:

$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 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

<Optionen>

Schließen Sie den Optionsnamen in Anführungszeichen ein. Optionen sind nur gültig, wenn der <Parameter Max-substrings> 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 regulären Ausdrucksabgleich, 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. Gültig nur mit RegexMatch.
  • IgnorePatternWhitespace: Ignoriert leerzeichen und kommentare, die mit dem Zahlenzeichen (#) gekennzeichnet sind. Gültig nur mit RegexMatch.
  • Mehrzeiliges: Mehrzeilige Modus erzwingt ^ und $ entspricht dem Anfang jeder Zeile anstelle des Anfangs und des Endes der Eingabezeichenfolge.
  • Singleline: Der Singleline-Modus behandelt die Eingabezeichenfolge als SingleLine. Es zwingt das . Zeichen, jedem Zeichen (einschließlich Neuerlinien) zu entsprechen, anstatt jedem Zeichen außer dem Zeilenumbruch \nzu entsprechen.
  • ExplicitCapture: Ignoriert nicht benannte Übereinstimmungsgruppen, sodass nur explizite Erfassungsgruppen in der Ergebnisliste zurückgegeben werden. Gültig nur mit RegexMatch.

UNÄRE UND BINÄRE SPLIT-OPERATOREN

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

Verwenden Sie eines der folgenden Muster, um mehrere Zeichenfolgen aufzuteilen:

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

Betrachten Sie das folgende 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 in 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 beim Muster "er".

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

Die folgende Anweisung führt beim Buchstaben "N" eine Aufteilung zwischen Groß- und Kleinschreibung durch.

"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", schränkt die resultierenden Teilzeichenfolgen jedoch auf sechs Teilzeichenfolgen ein.

"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 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 Mehrzeilige, um den Anfang jeder Zeile und Zeichenfolge zu erkennen.

Der Wert 0 stellt den Wert "alle zurückgeben" des Parameters Max-substrings dar. Sie können Optionen, z. B. Mehrzeilen, 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.

Die folgende Anweisung verwendet den umgekehrten Schrägstrich, um das Punkttrennzeichen (.) zu escapen.

Bei der Standardeinstellung RegexMatch wird der in Anführungszeichen (".") eingeschlossene Punkt so interpretiert, dass er einem beliebigen Zeichen mit Ausnahme eines Zeilenneulinienzeichens entspricht. Daher gibt die Split-Anweisung eine Leerzeile für jedes Zeichen mit Ausnahme von Zeilenzeile zurück.

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

Die folgende Anweisung verwendet die SimpleMatch-Option, um den Operator -split anweisen, das Punkttrennzeichen (.) wörtlich zu interpretieren.

Der Wert 0 stellt den Wert "alle zurückgeben" des Parameters Max-substrings dar. Sie können Optionen wie SimpleMatch nur verwenden, wenn der Wert Max-substrings angegeben ist.

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

Die folgende Anweisung teilt die Zeichenfolge in einem von zwei Trennzeichen auf, abhängig vom Wert einer Variablen.

$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