Funciones de PCRE
PHP Manual

preg_split

(PHP 4, PHP 5)

preg_splitDivide una cadena mediante una expresión regular

Descripción

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

Divide la cadena dada mediante una expresión regular.

Parámetros

pattern

El patrón de búsqueda, como cadena.

subject

La cadena de entrada.

limit

Si se especifica, entonces sólo las sub-cadenas hasta limit son devueltas, con el resto de la cadena siendo colocada en la última sub-cadena. Si limit vale -1, 0 o NULL significa "sin límite" y, como es un estándar en PHP, 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 | a nivel de bits):

PREG_SPLIT_NO_EMPTY
Si se aplica esta bandera, sólo los elementos no vacíos serán devueltos 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 de la cadena añadida también será devuelto. Observe que esto cambia el valor devuelto dentro de una matriz donde cada elemento es una matriz consistente en la cadena coincidente en el índice 0 y su índice de cadena dentro de subject en el índice 1.

Valores devueltos

Devuelve una matriz que contiene sub-cadenas de subject dividido por los límites coincidentes de pattern.

Historial de cambios

Versión Descripción
4.3.0 Se añadió PREG_SPLIT_OFFSET_CAPTURE
4.0.5 Se añadió PREG_SPLIT_DELIM_CAPTURE

Ejemplos

Ejemplo #1 Ejemplo de preg_split() : Obtiene las partes de una cadena 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,]+/""lenguaje de hipertexto, programación");
print_r($claves);

El resultado del ejemplo sería:

Array
(
    [0] => lenguaje
    [1] => de
    [2] => hipertexto
    [3] => programación
)

Ejemplo #2 Dividir una cadena en sus caracteres constituyentes

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

El resultado del ejemplo sería:

Array
(
    [0] => c
    [1] => a
    [2] => d
    [3] => e
    [4] => n
    [5] => a
)

Ejemplo #3 Dividir una cadena mediante coincidencias y sus índices

<?php
$cadena 
'lenguaje de programación hipertexto';
$caracteres preg_split('/ /'$cadena, -1PREG_SPLIT_OFFSET_CAPTURE);
print_r($caracteres);
?>

El resultado del ejemplo sería:

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

    [1] => Array
        (
            [0] => de
            [1] => 9
        )

    [2] => Array
        (
            [0] => programación
            [1] => 12
        )

    [3] => Array
        (
            [0] => hipertexto
            [1] => 25
        )

)

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().

Ver también


Funciones de PCRE
PHP Manual