preg_match_all() è una funzione integrata in PHP utilizzata per abbinare il modello specifico in una stringa. È possibile utilizzare questa funzione per eseguire corrispondenze di espressioni regolari ed estrarre dati da stringhe. Può far risparmiare tempo e fatica nei casi in cui è necessario cercare più occorrenze di un pattern ed è ampiamente utilizzato nelle applicazioni di analisi del testo e di estrazione dei dati di PHP.
Sintassi
Di seguito è riportata la sintassi per l'utilizzo di preg_match_all in PHP:
preg_match_all ( modello , ingresso , partite , bandiere , compensare )
IL preg_match_all accetta i seguenti parametri, tre obbligatori e due facoltativi:
- modello : è il parametro obbligatorio; contiene l'espressione regolare che deve essere cercata.
- ingresso : Anche il secondo è un parametro obbligatorio, in quanto è la stringa in cui viene eseguita la ricerca.
- partite : Memorizza l'output nell'array contenente tutte le corrispondenze.
- bandiere : Descrive come è strutturato l'array di ricerca o corrispondenza. Modifica il comportamento della ricerca di funzione. Possono essere utilizzati i seguenti flag:
- compensare : è il parametro opzionale che specifica la posizione iniziale della ricerca.
Bandiera | Descrizione |
---|---|
PREG_PATTERN_ORDER | L'array risultante ha tutte le corrispondenze di un array per ogni elemento dell'espressione regolare. |
PREG_SET_ORDER | Ciascun elemento dell'array di corrispondenze contiene corrispondenze di ogni raggruppamento per una delle corrispondenze trovate della stringa. |
PREG_OFFSET_CAPTURE | Restituisce le corrispondenze con le corrispondenti posizioni di offset dei byte nella stringa dell'oggetto. |
PREG_UNMATCHED_AS_NULL | I pattern senza corrispondenza verranno segnalati come NULL. |
Esempio 1
Si consideri il seguente esempio di utilizzo di preg_match_all() funzione in PHP. In questo codice, stiamo cercando la parola Linux nella stringa. Questa funzione emette il numero di corrispondenze trovate rispetto alla parola Linux :
$stringa = 'Ciao appassionati di Linux, benvenuti su LinuxHint!' ;
$modello = '/Linux/' ;
$partite = vettore ( ) ;
preg_match_all ( $modello , $stringa , $partite ) ;
stampa_r ( $partite [ 0 ] ) ;
?>
Esempio 2
In questo codice di esempio, stiamo cercando la parola E nella stringa. La i minuscola viene utilizzata per rendere la ricerca senza distinzione tra maiuscole e minuscole. Restituirà tutte le occorrenze di stringa della parola E o e:
$stringa = 'BENVENUTI NEGLI STATI UNITI.' ;
$modelloRex = '/E/i' ;
$matchTrovato = preg_match_all ( $modelloRex , $stringa , $partite ) ;
Se ( $matchTrovato ) {
eco '
';
stampa_r ( $partite ) ;
}
?>
Esempio 3
Se il modello che stai cercando non è presente nella stringa, la funzione restituirà false, indicando un errore. Per gestire questo, puoi usare le istruzioni if-else. Se il pattern non viene trovato, puoi stampare un messaggio usando l'istruzione else per informare l'utente che il pattern non è stato trovato.
$stringa = 'PHP è un linguaggio di scripting popolare' ;
$modelloRex = '/fare pipì/' ;
$matchTrovato = preg_match_all ( $modelloRex , $stringa , $partite ) ;
Se ( $matchTrovato ) {
eco '
';
eco 'Corrispondenza trovata.' ;
stampa_r ( $partite ) ;
} altro {
eco 'Nessuna corrispondenza trovata.' ;
}
?>
Nota : IL tag nel codice precedente viene utilizzato per formattare l'output.
Linea di fondo
Le espressioni regolari sono un potente strumento per la ricerca e la manipolazione del testo in PHP. IL preg_match_all() function è una funzione PHP incorporata che viene utilizzata per eseguire una corrispondenza di espressione regolare con una stringa e recuperare tutte le occorrenze del pattern e se il pattern non esiste, restituirà false. Capire il preg_match_all() funzione aiuterà gli utenti a gestire ed elaborare meglio i dati di testo in PHP.