Em PHP, você pode extrair números de uma string usando expressões regulares e a função preg_match_all()
. Aqui está um exemplo de como extrair todos os números de uma string:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
Isso produzirá:
Array ( [0] => 15 [1] => 3 )
Explicação:
/[0-9]+/
procura um ou mais dígitos consecutivos.preg_match_all()
pesquisa na string todas as ocorrências da expressão regular e armazena as correspondências no array $matches
.print_r()
é usada para exibir o conteúdo do array.Você também pode usar a função preg_replace()
para remover caracteres não numéricos de uma string e manter apenas os números:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
Isso produzirá:
15 3
Explicação:
/D/
corresponde a qualquer caractere que não seja um dígito.preg_replace()
substitui todos os caracteres que não sejam dígitos por uma string vazia, removendo-os efetivamente da string.Existe uma outra maneira de fazer isso, mas não é tão confiável como as duas opções acima. Podemos usar a função interna filter_var()
do PHP para extrair int da string.
$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;
Isso produzirá:
153