preg_split
(PHP 4, PHP 5)
preg_split — Divide a string por uma expressão regular
Descrição
$pattern
, string $subject
[, int $limit
[, int $flags
]] )Divide uma dada string por uma expressão regular.
Parâmetros
-
pattern -
O padrão a ser usado.
-
subject -
A string de entrada.
-
limit -
Se especificado, então somente
limitpedaços da string serão retornados, e selimitfor -1, significa "sem limite", que é útil quando especificandoflags. -
flags -
flagspode ser uma combinação das seguintes flags (combinada com o operador | bit-a-bit):-
PREG_SPLIT_NO_EMPTY - Se esta flag é usada, somente pedaços não vazios serão retornados pela preg_split().
-
PREG_SPLIT_DELIM_CAPTURE - Se esta flag é usada, expressão entre parênteses no padrão serão capturados e retornados também.
-
PREG_SPLIT_OFFSET_CAPTURE -
Se esta flag é usada, para cada combinação o offset da string será também retornado. Note que isto modifica o valor de retorno em um array onde cada elemento é um array contendo a string combinada no índice 0 e o offset da mesma em
subjectno índice 1.
-
Valor Retornado
Retorna um array contendo pedaços de strings de subject
divididos pelo que for combinado pelo pattern.
Changelog
| Versão | Descrição |
|---|---|
| 4.3.0 |
A PREG_SPLIT_OFFSET_CAPTURE foi adicionada
|
| 4.0.5 |
A PREG_SPLIT_DELIM_CAPTURE foi adicionada
|
| 4.0.0 |
O parâmetro flags foi adicionado
|
Exemplos
Example #1 Exemplo da preg_split(): Obtendo partes de uma string
<?php
// reparte a frase por algum número caracteres de vírgula ou espaço,
// incluindo " ", \r, \t, \n e \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>
Example #2 Dividindo a string em cada caractere que a compõe
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
Example #3 Dividindo a string pela combinação e seus offsets
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
O exemplo acima irá imprimir:
Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)
[1] => Array
(
[0] => language
[1] => 10
)
[2] => Array
(
[0] => programming
[1] => 19
)
)
Notas
Se você não precisa do poder das expressões regulares, pode optar por alternativa mais rápidas como explode() ou str_split().
Veja Também
- spliti() - Separa strings em array utilizando expressões regulares insensíveis a maiúsculas e minúsculas
- split() - Separa strings em array utilizando expressões regulares
- implode() - Junta elementos de uma matriz em uma string
- preg_match() - Perform a regular expression match
- preg_match_all() - Perform a global regular expression match
- preg_replace() - Realiza uma pesquisa por uma expressão regular e a substitui.