StrSplit() [v1.1.13+]

Teilt eine Zeichenkette mittels bestimmter Separatoren in mehrere Teilzeichenketten auf.

Array := StrSplit(Zkette , Separatoren, ZuEntfernendeZeichen, MaxParts)

Parameter

Zkette

Eine Zeichenkette, die aufgeteilt werden soll.

Separatoren

Wenn leer oder weggelassen, wird jedes Zeichen in der Eingabezeichenkette als einzelne Teilzeichenkette behandelt.

Andernfalls geben Sie entweder eine einzelne Zeichenkette oder ein Array von Zeichenketten an (Groß-/Kleinschreibung-sensitiv), die jeweils zur Abgrenzung der Teilzeichenketten verwendet werden. Da die Separatoren nicht als Teil der Teilzeichenketten betrachtet werden, sind sie nie im Rückgabe-Array enthalten. Wenn sich zwischen zwei Separatoren in der Eingabezeichenkette nichts befindet, wird das entsprechende Array-Element leer sein.

Zum Beispiel: "," würde die Zeichenkette an jedem Komma teilen, während [A_Space, A_Tab] ein neues Array-Element an jedem Leer- oder Tabulatorzeichen in der Eingabezeichenkette erstellen würde.

ZuEntfernendeZeichen

Wenn leer oder weggelassen, werden keine Zeichen entfernt. Andernfalls geben Sie eine Liste von Zeichen an (Groß-/Kleinschreibung-sensitiv), die am Anfang und Ende jedes Array-Elements entfernt werden sollen. Wenn ZuEntfernendeZeichen z.B. " `t" ist, werden Leer- und Tabulatorzeichen am Anfang und Ende (aber nicht in der Mitte) jedes abgerufenen Elements entfernt.

Wenn Separatoren leer ist, gibt ZuEntfernendeZeichen die Zeichen an, die das Array nicht enthalten soll.

MaxParts [v1.1.28+]
Wenn weggelassen, wird standardmäßig -1 verwendet, d.h. "kein Limit". Wenn leer, wird standardmäßig 0 verwendet. Andernfalls geben Sie die maximale Anzahl von Teilzeichenketten an, die zurückgegeben werden sollen. Wenn ungleich 0, wird die Zeichenkette maximal MaxParts-1 Mal geteilt und der Rest der Zeichenkette als letzte Teilzeichenkette zurückgegeben (ohne ZuEntfernendeZeichen am Anfang und Ende).

Rückgabewert

Diese Funktion gibt ein Array (Objekt) von Zeichenketten zurück.

Bemerkungen

Leerraumzeichen wie Leer- und Tabulatorzeichen bleiben erhalten, es sei denn, diese Zeichen sind selbst Trennzeichen oder in ZuEntfernendeZeichen angegeben. Um Leer- und Tabulatorzeichen an beiden Enden einer Variable zu entfernen, verwenden Sie die Trim-Funktion. Zum Beispiel: MeinArray1 := Trim(MeinArray1).

Zum Splitten einer Zeichenkette im regulären CSV-Format (Comma Separated Values, dt. kommagetrennte Werte) können Sie eine parsende Schleife verwenden, da diese nativ mit CSV umgehen kann.

Um die Felder vor dem Splitten anders anzuordnen, verwenden Sie den Sort-Befehl.

Wenn die Teilzeichenketten nur temporär benötigt werden, ist es ratsam, eine parsende Schleife zu verwenden, insbesondere wenn Zkette sehr groß ist, da in diesem Fall viel Arbeitsspeicher gespart werden kann. Zum Beispiel:

Farben := "rot,grün,blau"
Loop, Parse, Farben, % ","
    MsgBox % "Farbe Nr. " A_Index " ist " A_LoopField

StringSplit, parsende Schleife, Arrays, Sort, SplitPath, InStr(), SubStr(), StrLen(), StringLower, StringUpper, StrReplace()

Beispiele

Splittet einen Satz in ein Array von Wörtern und meldet das vierte Wort.

TestZkette := "Das ist ein Test."
wort_array := StrSplit(TestZkette, A_Space, ".") ; Entfernt Punkte.
MsgBox % "Das vierte Wort ist " wort_array[4]

Splittet eine kommagetrennte Liste von Farben in ein Array von Teilzeichenketten und geht diese einzeln durch.

Farben := "rot,grün,blau"
for Index, Farbe in StrSplit(Farben, ",")
    MsgBox % "Farbe Nr. " Index " ist " Farbe