# preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Divide un string mediante una expresión regular

### Descripción

preg_split(
string `$pattern`,
string `$subject`,
int `$limit` = -1,
int `$flags` = 0
): array

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. Si `limit` vale -1 o 0 significa "sin límite".

`flags`

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

  `PREG_SPLIT_NO_EMPTY`
    Si se aplica esta bandera, solo serán devueltos los elementos no vacíos 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 `subject` en el índice `1`.

### Valores devueltos

Devuelve un array que contiene substrings de `subject` dividido por los límites coincidentes de `pattern`, o `false` en caso de error.

### Errores/Excepciones

If the regex pattern passed does not compile to a valid regex, an `E_WARNING` is emitted.

### 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

Sugerencia

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().

Sugerencia

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 de PCRE