Função preg_split

A função preg_split divide uma string em elementos de array, usando uma expressão regular para buscar os delimitadores. O primeiro parâmetro aceita a expressão regular, o segundo - a string original. O terceiro parâmetro opcional define a quantidade de elementos no array no resultado final. O quarto parâmetro opcional define os flags, que alteram o comportamento da função.

Sintaxe

phppreg_split(pattern, subject, [limit], [flags]);

Flags

Flag Constante Descrição
PREG_SPLIT_NO_EMPTY 1 Retorna apenas as partes não vazias após a divisão.
PREG_SPLIT_DELIM_CAPTURE 2 Captura e retorna as partes da correspondência com subpadrões na expressão regular.
PREG_SPLIT_OFFSET_CAPTURE 4 Para cada parte retornada, adiciona a sua posição na string original.

Exemplo

Vamos dividir uma string por vírgulas:

php<?php
  $res = preg_split('/,/', 'a,b,c,d,e');
  var_dump($res);
?>

Resultado da execução do código:

php['a', 'b', 'c', 'd', 'e']

Exemplo

Vamos dividir uma string por quaisquer caracteres de espaço em branco com limite de quantidade de elementos:

php<?php
  $res = preg_split('/\s+/', '1 2 3 4 5', 3);
  var_dump($res);
?>

Resultado da execução do código:

php['1', '2', '3 4 5']

Exemplo

Uso do flag PREG_SPLIT_NO_EMPTY para excluir elementos vazios:

php<?php
  $res = preg_split('/[,\s]/', 'a,b, c, ,d', -1, PREG_SPLIT_NO_EMPTY);
  var_dump($res);
?>

Resultado da execução do código:

php['a', 'b', 'c', 'd']

Veja também

  • a função preg_match,
    que executa uma busca por expressão regular
  • a função explode,
    que divide uma string por um delimitador simples