preg_split

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

preg_splitÉclate une chaîne par expression rationnelle

Description

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. Notez 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 vous n'avez pas besoin de la puissance des expressions régulières, vous pouvez choisir des alternatives plus rapides (quoique plus simples) comme explode() ou str_split().

Astuce

Si la recherche d'une correspondance échoue, un tableau contenant qu'un seul élément contenant 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
  • implode() - Rassemble les éléments d'un tableau en une chaîne
  • 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
To Top