# preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks

### Beschreibung

preg_split(
string `$pattern`,
string `$subject`,
int `$limit` = -1,
int `$flags` = 0
): array|false

Zerlegt die angegebene Zeichenkette anhand eines regulären Ausdrucks.

### Parameter-Liste

`pattern`

  Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette.

`subject`

  Die zu zerlegende Zeichenkette.

`limit`

  Falls angegeben, werden maximal `limit` Teilzeichenketten zurückgegeben, wobei der Rest der Zeichenkette in der letzten Teilzeichenkette abgelegt wird. Ein `limit` von -1 oder 0 bedeutet "kein Limit".

`flags`

  `flags` kann jede Kombination der folgenden Flags sein (verknüpft mit dem bitweisen `|` Operator):

  `PREG_SPLIT_NO_EMPTY`
    Falls dieses Flag gesetzt ist, werden von preg_split() nur die Teile zurückgegeben, die nicht leer sind.
  `PREG_SPLIT_DELIM_CAPTURE`
    Falls dieses Flag gesetzt ist, werden auch die eingeklammerten Ausdrücke des Trennsymbol-Suchmusters erfasst und zurückgegeben.
  `PREG_SPLIT_OFFSET_CAPTURE`

    Falls dieses Flag gesetzt ist, wird mit jeder gefundenen Übereinstimmung die dazugehörige Position in der Zeichenkette zurückgegeben. Zu beachten ist, dass dies die Rückgabewerte in einem Array dahingehend ändert, dass jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als Element `0` und deren Stelle in `subject` als Element `1` besteht.

### Rückgabewerte

Gibt ein Array zurück, bestehend aus Teilzeichenketten der Zeichenkette `subject`, die an den auf das Suchmuster `pattern` passenden Stellen zerlegt wurde. Bei einem Fehler wird `false` zurückgegeben.

### Fehler/Exceptions

Wenn das übergebene Regex-Muster nicht zu einem gültigen Regex kompiliert werden kann, wird ein Fehler der Stufe `E_WARNING` ausgegeben.

### Beispiele

Beispiel #1 preg_split()-Beispiel: Eine Zeichenkette in Teile zerlegen

`<?php
// zerlegt die Zeichenkette an Stellen mit beliebiger Anzahl von
// Kommata oder Leerzeichen, die " ", \r, \t, \n und \f umfassen
$schluesselwoerter = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($schluesselwoerter);
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => hypertext
        [1] => language
        [2] => programming
    )

Beispiel #2 Eine Zeichenkette in einzelne Zeichen zerlegen

`<?php
$str = 'string';
$zeichen = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($zeichen);
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => s
        [1] => t
        [2] => r
        [3] => i
        [4] => n
        [5] => g
    )

Beispiel #3 Zerlegen einer Zeichenkette in Suchtreffer und Erfassen der Positionen

`<?php
$str = 'hypertext language programming';
$zeichen = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($zeichen);
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => Array
            (
                [0] => hypertext
                [1] => 0
            )

        [1] => Array
            (
                [0] => language
                [1] => 10
            )

        [2] => Array
            (
                [0] => programming
                [1] => 19
            )

    )

### Anmerkungen

Tipp

Falls die Leistungsfähigkeit regulärer Ausdrücke nicht benötigt wird, können stattdessen schnellere (und gleichzeitig einfachere) Alternativen wie explode() oder str_split() verwendet werden.

Tipp

Falls keine Übereinstimmungen gefunden wurden, wird ein Array mit nur einem Element zurückgegeben, das die übergebene Zeichenkette enthält.

### Siehe auch

- PCRE-Suchmuster
- preg_quote() - Maskiert Zeichen regulärer Ausdrücke
- explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
- preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
- preg_match_all() - Führt eine vollständige Suche mit einem regulären Ausdruck durch
- preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
- preg_last_error() - Liefert den Fehlercode der letzten PCRE-RegEx-Auswertung

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open