preg_split

(PHP 4, PHP 5, PHP 7)

preg_splitDivide un string mediante una expresión regular

Descripción

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array

Divide el string dado mediante una expresión regular.

Parámetros

pattern

El patrón de búsqueda, dado como string.

subject

El string de entrada.

limit

Si se especifica, son devueltos únicamente los substrings hasta limit, con el resto del string colocado en el último substring. Si limit vale -1, 0 o NULL, significa "sin límite" y, como es un estándar en PHP, se puede usar NULL para saltar hacia el parámetro flags.

flags

flags puede ser una combinación de las siguientes banderas (combinadas con el operador | de bits):

PREG_SPLIT_NO_EMPTY
Si se aplica esta bandera, solo serán devueltos los elementos no vacíos por preg_split().
PREG_SPLIT_DELIM_CAPTURE
Si se aplica esta bandera, las expresiones entre paréntesis en el patrón delimitador serán capturadas y devueltas.
PREG_SPLIT_OFFSET_CAPTURE

Si se aplica esta bandera, por cada coincidencia producida, el índice del string añadido también será devuelto. Observe que esto cambia el valor devuelto dentro de un array donde cada elemento es un array consistente en el string coincidente en el índice 0 y su índice de string dentro de subject en el índice 1.

Valores devueltos

Devuelve un array que contiene substrings de subject dividido por los límites coincidentes de pattern, o FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de preg_split() : Obtener las partes de un string de búsqueda

<?php
// divide la frase mediante cualquier número de comas o caracteres de espacio,
// lo que incluye " ", \r, \t, \n y \f
$claves preg_split("/[\s,]+/""hypertext language, programming");
print_r($claves);
?>

El resultado del ejemplo sería:

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

Ejemplo #2 Dividir un string en sus caracteres constituyentes

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

El resultado del ejemplo sería:

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

Ejemplo #3 Dividir un string mediante coincidencias y sus índices

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

El resultado del ejemplo sería:

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

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

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

)

Notas

Sugerencia

Si no necesita la potencia de expresiones regulares, puede optar por alternativas más rápidas (no obstante más sencillas) como explode() o str_split().

Sugerencia

Si la comparación falla, será devuelto un array con un único elemento que contiene el string de entrada.

Ver también