(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — Divide una cadena mediante expresión regular
Divide una cadena mediante expresión regular.
pattern
El patrón a buscar, en forma de chaîne de caractères.
subject
La 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_EMPTY
PREG_SPLIT_DELIM_CAPTURE
PREG_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
en caso de error.
If the regex pattern passed does not compile to a valid regex, an E_WARNING
is emitted.
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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
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.