Forum und email

preg_split

(PHP 4, PHP 5)

preg_split — Separar una cadena por una expresión regular

Descripción

array preg_split ( string $patron , string $asunto [, int $limite [, int $banderas ]] )

Separa la cadena dada mediante una expresión regular.

Lista de parámetros

patron

El patrón a buscar, como una cadena.

asunto

La cadena de entrada.

limite

Si se especifica, entonces sólo se devuelve una cantidad de hasta limite sub-cadenas, y si limite es -1, quiere decir "sin límite", lo cual es útil cuando se quiere pasar un valor al parámetro banderas .

banderas

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

PREG_SPLIT_NO_EMPTY
Si esta bandera es definida, preg_split() sólo devolverá segmentos no-vacíos.
PREG_SPLIT_DELIM_CAPTURE
Si se define esta bandera, las expresiones entre paréntesis en el patrón de delimitación serán capturadas y devueltas también.
PREG_SPLIT_OFFSET_CAPTURE

Si se define esta bandera, para cada coincidencia encontrada, se devolverá también la posición de la cadena anexa. Note que esto modifica el valor de retorno a una matriz en donde cada elemento es una matriz consistente de la cadena coincidente en la posición 0 y su desplazamiento de cadena al interior de asunto en la posición 1.

Valores retornados

Devuelve una matriz que contiene sub-cadenas de asunto , separadas sobre ciertos límites coincidentes con patron .

Registro de cambios

Versión Descripción
4.3.0 Se agregó PREG_SPLIT_OFFSET_CAPTURE
4.0.5 Se agregó PREG_SPLIT_DELIM_CAPTURE
4.0.0 El parámetro banderas fue agregado

Ejemplos

Example#1 Ejemplo de preg_split(): Obtener las partes de una cadena de búsqueda

<?php
// separar la frase por cualquier numero de comas o caracteres de espacio,
// incluyendo " ", \r, \t, \n y \f
$palabras_clave preg_split("/[\s,]+/""lenguaje hipertexto, programación");
?>

Example#2 Separar una cadena en sus caracteres

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

Example#3 Separar una cadena en coincidencias y sus desplazamientos

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

El resultado del ejemplo seria:

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

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

    [2] => Array
        (
            [0] => hipertexto
            [1] => 22
        )

)

Notes

Tip

Si no necesita el poder de las expresiones regulares, es posible usar alternativas más rápidas (aunque más simples) como explode() o str_split().