(PHP 4, PHP 5)
preg_split — Divide una cadena mediante una expresión regular
$pattern
, string $subject
[, int $limit
= -1
[, int $flags
= 0
]] )Divide la cadena dada mediante una expresión regular.
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
PREG_SPLIT_DELIM_CAPTURE
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.
Devuelve una matriz que contiene sub-cadenas de subject
dividido por los límites coincidentes de pattern
.
Versión | Descripción |
---|---|
4.3.0 |
Se añadió PREG_SPLIT_OFFSET_CAPTURE
|
4.0.5 |
Se añadió PREG_SPLIT_DELIM_CAPTURE
|
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, -1, PREG_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, -1, PREG_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 ) )
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().