Éclate une chaîne par expression rationnelle

# preg_split

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

preg_split — Éclate une chaîne par expression rationnelle

### Description

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

Éclate une chaîne par expression rationnelle.

### Liste de paramètres

`pattern`

  Le masque à chercher, sous la forme d'une chaîne de caractères.

`subject`

  La chaîne d'entrée.

`limit`

  Si `limit` est spécifié, alors seules les `limit` premières sous-chaînes sont retournées avec le reste de la chaîne placé dans la dernière sous-chaîne. Une `limit` de -1 ou 0 signifie "aucune limite".

`flags`

  `flags` peut être la combinaison des options suivantes (combinées avec l'opérateur `|`):

  `PREG_SPLIT_NO_EMPTY`
    Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().
  `PREG_SPLIT_DELIM_CAPTURE`
    Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées.
  `PREG_SPLIT_OFFSET_CAPTURE`

    Si cette option est activée, pour chaque résultat, la position de celui-ci sera retournée. À noter que cela change la valeur retournée en un tableau où chaque élément est un tableau constitué de la chaîne trouvée à la position `0` et la position de la chaîne dans `subject` à la position `1`.

### Valeurs de retour

Retourne un tableau contenant les sous-chaînes de `subject`, séparées par les chaînes qui vérifient `pattern`, ou `false` si une erreur survient.

### Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une `E_WARNING` est émise.

### Exemples

Exemple #1 Exemple avec preg_split() : Éclatement d'une chaîne de recherche

    <?php
    // scinde la phrase grâce aux virgules et espacements
    // ce qui inclus les " ", \r, \t, \n et \f
    $keywords = preg_split("/[\s,]+/", "langage hypertexte, programmation");
    print_r($keywords);
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => langage
        [1] => hypertexte
        [2] => programmation
    )

Exemple #2 Scinder une chaîne en caractères

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

L'exemple ci-dessus va afficher :

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

Exemple #3 Scinde une chaîne et capture les positions

    <?php
    $str = 'langage hypertexte, programmation';
    $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
    print_r($chars);
    ?>

L'exemple ci-dessus va afficher :

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

        [1] => Array
            (
                [0] => hypertexte,
                [1] => 8
            )

        [2] => Array
            (
                [0] => programmation
                [1] => 20
            )

    )

### Notes

Astuce

Si la puissance des expressions régulières n'est pas nécessaire, il est possible de choisir des alternatives plus rapides (quoique plus simples) comme explode() ou str_split().

Astuce

Si la recherche d'une correspondance échoue, un tableau ne contenant qu'un seul élément, la chaîne d'entrée, sera retourné.

### Voir aussi

- Masques PCRE
- preg_quote() - Protection des caractères spéciaux des expressions régulières
- explode() - Scinde une chaîne de caractères en segments
- preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
- preg_match_all() - Expression rationnelle globale
- preg_replace() - Rechercher et remplacer par expression rationnelle standard
- preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée

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