En PHP, vous pouvez extraire des nombres d'une chaîne à l'aide d'expressions régulières et de la fonction preg_match_all()
. Voici un exemple de la façon d'extraire tous les nombres d'une chaîne :
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
Cela produira :
Array ( [0] => 15 [1] => 3 )
Explication:
/[0-9]+/
recherche un ou plusieurs chiffres consécutifs.preg_match_all()
recherche dans la chaîne toutes les occurrences de l'expression régulière et stocke les correspondances dans le tableau $matches
.print_r()
est utilisée pour afficher le contenu du tableau.Vous pouvez également utiliser la fonction preg_replace()
pour supprimer les caractères non numériques d'une chaîne et conserver uniquement les nombres :
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
Cela produira :
15 3
Explication:
/D/
correspond à tout caractère autre qu'un chiffre.preg_replace()
remplace tous les caractères non numériques par une chaîne vide, les supprimant ainsi de la chaîne.Il existe une autre façon de le faire, mais elle n'est pas aussi fiable que les deux options ci-dessus. Nous pouvons utiliser la fonction intégrée PHP filter_var()
pour extraire l'int de la chaîne.
$string = "There are 15 Oranges and 3 Bananas.";
// extract numbers from string
$my_int = (int)filter_var($string ,FILTER_SANITIZE_NUMBER_INT);
echo $my_int;
Cela produira :
153