(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — Divide una cadena mediante expresión regular
Divide una cadena mediante expresión regular.
patternEl patrón a buscar, en forma de string.
subjectLa cadena de entrada.
limit
Si limit está especificado, entonces solo se devuelven
las limit primeras sub-caenas con el resto de la cadena
colocado en la última sub-caena.
Un limit de -1 o 0 significa "sin límite".
flags
flags puede ser la combinación de las
siguientes opciones (combinadas con el operador |):
PREG_SPLIT_NO_EMPTYPREG_SPLIT_DELIM_CAPTUREPREG_SPLIT_OFFSET_CAPTURE
Si esta opción está activada, para cada resultado, su posición será devuelta.
Tenga en cuenta que esto cambia el valor devuelto a un array donde cada elemento es un
array compuesto por la cadena encontrada en la posición 0
y la posición de la cadena en subject en
la posición 1.
Devuelve un array que contiene las sub-caenas de subject,
separadas por las cadenas que coinciden con pattern, o false si ocurre un error.
Si el patrón regex pasado no se compila a una regex válida, se emite una E_WARNING.
Ejemplo #1 Ejemplo con preg_split(): División de una cadena de búsqueda
<?php
// divide la frase mediante comas y espacios
// lo que incluye los " ", \r, \t, \n y \f
$keywords = preg_split("/[\s,]+/", "lenguaje de marcado, programación");
print_r($keywords);
?>El ejemplo anterior mostrará :
Array
(
[0] => lenguaje
[1] => de
[2] => marcado
[3] => programación
)
Ejemplo #2 Dividir una cadena en caracteres
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>El ejemplo anterior mostrará :
Array
(
[0] => s
[1] => t
[2] => r
[3] => i
[4] => n
[5] => g
)
Ejemplo #3 Dividir una cadena y capturar las posiciones
<?php
$str = 'lenguaje de marcado, programación';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>El ejemplo anterior mostrará :
Array
(
[0] => Array
(
[0] => lenguaje
[1] => 0
)
[1] => Array
(
[0] => de
[1] => 8
)
[2] => Array
(
[0] => marcado,
[1] => 12
)
[3] => Array
(
[0] => programación
[1] => 22
)
)
Si no se necesita el poder de las expresiones regulares, pueden elegirse alternativas más rápidas (aunque más simples) como explode() o str_split().
Si la búsqueda de una coincidencia falla, se devuelve un array que contiene un solo elemento que contiene la cadena de entrada.