preg_split
(PHP 4, PHP 5)
preg_split — Divide un string mediante una expresión regular
Descripción
$pattern
, string $subject
[, int $limit = -1
[, int $flags = 0
]] )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. Silimitvale -1, 0 oNULL, significa "sin límite" y, como es un estándar en PHP, se puede usarNULLpara saltar hacia el parámetroflags. -
flags -
flagspuede 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 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
subjecten el índice 1.
-
Valores devueltos
Devuelve un array que contiene substrings de subject
dividido por los límites coincidentes de pattern.
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, -1, PREG_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, -1, PREG_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
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().
Si la comparación falla, será devuelto un array con un único elemento que contiene el string de entrada.
Ver también
- Patrones de PCRE
- preg_quote() - Escapar caracteres en una expresión regular
- implode() - Une elementos de un array en un string
- preg_match() - Realiza una comparación con una expresión regular
- preg_match_all() - Realiza una comparación global de una expresión regular
- preg_replace() - Realiza una búsqueda y sustitución de una expresión regular
- preg_last_error() - Devuelve el código de error de la última ejecución de expresión regular PCRE