Forum und email

preg_split

(PHP 4, PHP 5)

preg_split — Divide a string por uma expressão regular

Descrição

array preg_split ( string $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 limit pedaços da string serão retornados, e se limit for -1, significa "sem limite", que é útil quando especificando flags .

flags

flags pode 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 subject no índice 1.

Valor Retornado

Retorna um array contendo pedaços de strings de subject divididos pelo que for combinado pelo pattern .

Histórico

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, -1PREG_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, -1PREG_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

Dica

Se você não precisa do poder das expressões regulares, pode optar por alternativa mais rápidas como explode() ou str_split().