Forum und email

preg_split

(PHP 4, PHP 5)

preg_split — Suddivisione di una stringa tramite le espressioni regolari

Descrizione

array preg_split ( string $espressione_regolare , string $testo [, int $limite [, int $flags ]] )

La funzione restituisce una matrice di parti di testo suddivisi tramite i criteri indicati da espressione_regolare .

Se viene specificato il parametro limite , la funzione restituisce tante parti del testo iniziale quante sono indicate da limite . Può essere usato il valore -1 per indicare "nessun limite". Ciò torna utile in abbinamento all'uso del parametro flags .

Il parametro flags può essere la combinazione dei seguenti flag (la combinazione di più flag avviene con l'operatore |):

PREG_SPLIT_NO_EMPTY
Specificando questo flag, la funzione preg_split() restituisce spezzoni di testo non vuoti.
PREG_SPLIT_DELIM_CAPTURE
Con l'uso di questo flag, la funzione cattura e restituisce eventuali espressioni poste tra parentesi nel parametro espressione_regolare . Questo flag è stato aggiunto nella versione 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE

Se viene impostato questo flag, per ogni testo riconosciuto viene restituito l'offset della stringa. Occorre notare che questo cambia il tipo di valore restituito nell'array; infatti ogni elemento è, a sua volta, un'array composto dalla stringa riconosciuta, all'indice 0, e dall'offset della stringa nell'indice 1. Questa costante è disponibile a partire dalla versione 4.3.0 di PHP.

Example#1 Esempio di preg_split(): Come ottenere le parti di un testo.

<?php
// Suddivide la seguente frase in base alla presenza di virgole, spazi bianchi,
// e altri caratteri speciali quali \r, \t, \n ed \f
$keywords preg_split("/[\s,]+/""hypertext language, programming");
?>

Example#2 Esempio di suddivisione di un testo in caratteri.

<?php
$str 
'string';
$chars preg_split('//'$str, -1PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Example#3 Suddivisione di una stringa in testi riconosciuti con i relativi offset.

<?php
$str 
'hypertext language programming'
$chars preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE); 
print_r($chars); 
?>

visualizzerà

 
 
Array 
( 
    [0] => Array 
        ( 
            [0] => hypertext 
            [1] => 0 
        ) 
  
    [1] => Array 
        ( 
            [0] => language 
            [1] => 10 
        ) 
  
    [2] => Array 
        ( 
            [0] => programming 
            [1] => 19 
        ) 
  
) 

Nota: Il parametro flags è stato aggiunto nella versione 4 Beta 3 di PHP.

Vedere anche spliti(), split(), implode(), preg_match(), preg_match_all() e preg_replace().