Estrai numeri da una stringa in PHP

Minahil Noor 30 marzo 2021
  1. Usa la funzione preg_match_all() per estrarre numeri da una stringa in PHP
  2. Usa la funzione filter_var() per estrarre numeri da una stringa in PHP
  3. Usa la funzione preg_replace() per estrarre numeri da una stringa in PHP
Estrai numeri da una stringa in PHP

In questo articolo, introdurremo metodi per estrarre numeri da una stringa in PHP.

  • Utilizzo della funzione preg_match_all()
  • Utilizzo della funzione filter_variable()
  • Utilizzo della funzione preg_replace()

Usa la funzione preg_match_all() per estrarre numeri da una stringa in PHP

Possiamo usare la funzione incorporata preg_match_all() per estrarre i numeri da una stringa. Questa funzione ricerca globalmente un pattern specificato da una stringa. La sintassi corretta per utilizzare questa funzione è la seguente:

preg_match_all($pattern, $inputString, $matches, $flag, $offset);

La funzione incorporata preg_match_all() ha cinque parametri. I dettagli dei suoi parametri sono i seguenti

Parametri Descrizione
$pattern obbligatorio È il modello che vogliamo controllare nella stringa data.
$inputString obbligatorio È la stringa per la quale vogliamo cercare il modello dato.
$matches opzionale Se viene fornito questo parametro, la funzione memorizza al suo interno il risultato del processo di corrispondenza.
$flags opzionale Questo parametro ha due opzioni: PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL. Puoi leggere la sua descrizione qui.
$offset opzionale Indica la funzione di dove avviare il processo di corrispondenza. Di solito, la ricerca inizia dall’inizio.

Questa funzione restituisce una variabile booleana. Restituisce vero se il modello dato esiste.

Il programma sotto mostra come possiamo usare la funzione preg_match_all() per estrarre numeri da una data stringa.

<?php 
$string = 'Sarah has 4 dolls and 6 bunnies.';
preg_match_all('!\d+!', $string, $matches);
print_r($matches); 
?> 

Abbiamo usato !\d+! pattern per estrarre i numeri dalla stringa.

Produzione:

Array
(
    [0] => Array
        (
            [0] => 4
            [1] => 6
        )

)

Usa la funzione filter_var() per estrarre numeri da una stringa in PHP

Possiamo anche usare la funzione filter_var() per estrarre numeri da una stringa. La sintassi corretta per utilizzare questa funzione è la seguente:

filter_var($variableName, $filterName, $options)

La funzione filter_var() accetta tre parametri. Il dettaglio dei suoi parametri è il seguente

Parametri Descrizione
$variableName obbligatorio È la variabile da filtrare.
$filterName obbligatorio È il nome del filtro che verrà applicato alla variabile. Per impostazione predefinita, è FILTER_DEFAULT
$options obbligatorio Questo parametro indica le opzioni da utilizzare.

Abbiamo utilizzato il filtro FILTER_SANITIZE_NUMBER_INT. Il programma che estrae i numeri dalla stringa è il seguente:

<?php 
$string = 'Sarah has 4 dolls and 6 bunnies.';
$int = (int) filter_var($string, FILTER_SANITIZE_NUMBER_INT);  
echo("The extracted numbers are: $int \n"); 
?> 

Produzione:

The extracted numbers are: 46 

Usa la funzione preg_replace() per estrarre numeri da una stringa in PHP

In PHP, possiamo anche usare la funzione preg_replace() per estrarre numeri da una stringa. La sintassi corretta per utilizzare questa funzione è la seguente:

preg_replace($regexPattern, $replacementVar, $original, $limit, $count)

La funzione preg_replace() accetta cinque parametri. Il dettaglio dei suoi parametri è il seguente

Parametri Descrizione
$regexPattern obbligatorio È il modello che cercheremo nella stringa o nell’array originale.
$replacementVar obbligatorio È la stringa o l’array che usiamo in sostituzione del valore cercato.
$original obbligatorio È la stringa o un array da cui vogliamo trovare il valore e sostituirlo.
$limit opzionale Questo parametro limita il numero di sostituzioni.
$count opzionale Questo parametro indica il numero di sostituzioni totali effettuate sulla nostra stringa o array originale.

Useremo il modello /[^0-9]/ per trovare i numeri nella stringa. Il programma che estrae i numeri dalla stringa è il seguente:

<?php 
$string = 'Sarah has 4 dolls and 6 bunnies.';
$outputString = preg_replace('/[^0-9]/', '', $string);  
echo("The extracted numbers are: $outputString \n"); 
?> 

Produzione:

The extracted numbers are: 46 

Articolo correlato - PHP String