Como extrair números a partir de uma string em PHP
-
Utilize
preg_match_all()
Função para extrair números de uma string em PHP -
Utilize
filter_var()
Função para extrair números de uma String em PHP -
Utilize
preg_replace()
Função para extrair números de uma String em PHP
Neste artigo, introduziremos métodos para extrair números de uma string
em PHP.
- Utilizando a função
preg_match_all()
- Utilizando a função
filter_variável()
- Utilizando a função
preg_replace()
Utilize preg_match_all()
Função para extrair números de uma string em PHP
Podemos utilizar a função embutida preg_match_all()
para extrair números de um string
. Esta função busca globalmente um padrão especificado a partir de uma string
. A sintaxe correta para utilizar esta função é a seguinte:
preg_match_all($pattern, $inputString, $matches, $flag, $offset);
A função embutida preg_match_all()
tem cinco parâmetros. Os detalhes de seus parâmetros são os seguintes
Parâmetros | Descrição | |
---|---|---|
$pattern |
obrigatório | É o padrão que queremos verificar no string dado. |
$inputString |
obrigatório | É o string para o qual queremos pesquisar o padrão dado. |
$matches |
opcional | Se este parâmetro for dado, então a função armazena o resultado do processo de correspondência nele. |
$flags |
opcional | Este parâmetro tem duas opções: PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL . Você pode ler sua descrição aqui. |
$offset |
opcional | Ele diz a função de onde iniciar o processo de correspondência. Normalmente, a busca começa desde o início. |
Esta função retorna uma variável Boolean
. Ela retorna verdadeira se o padrão dado existir.
O programa abaixo mostra como podemos utilizar a função preg_match_all()
para extrair números de uma determinada string
.
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
preg_match_all('!\d+!', $string, $matches);
print_r($matches);
?>
Temos utilizado !\d+!
padrão para extrair números da string
.
Resultado:
Array
(
[0] => Array
(
[0] => 4
[1] => 6
)
)
Utilize filter_var()
Função para extrair números de uma String em PHP
Também podemos utilizar a função filter_var()
para extrair números de um string
. A sintaxe correta para utilizar esta função é a seguinte:
filter_var($variableName, $filterName, $options)
A função filter_var()
aceita três parâmetros. Os detalhes de seus parâmetros são os seguintes
Parâmetros | Descrição | |
---|---|---|
$variableName |
obrigatório | É a variável a ser filtrada. |
$filterName |
obrigatório | É o nome do filtro que será aplicado à variável. Por padrão, ele é FILTER_DEFAULT . |
$options |
obrigatório | Este parâmetro informa sobre as opções a serem utilizadas. |
Utilizamos o filtro FILTER_SANITIZE_NUMBER_INT
. O programa que extrai números do string
é o seguinte:
<?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");
?>
Resultado:
The extracted numbers are: 46
Utilize preg_replace()
Função para extrair números de uma String em PHP
Em PHP, também podemos utilizar a função preg_replace()
para extrair números de uma string
. A sintaxe correta para utilizar esta função é a seguinte:
preg_replace($regexPattern, $replacementVar, $original, $limit, $count)
A função preg_replace()
aceita cinco parâmetros. Os detalhes de seus parâmetros são os seguintes
Parâmetros | Descrição | |
---|---|---|
$regexPattern |
obrigatório | É o padrão que procuraremos no string ou array original. |
$replacementVar |
obrigatório | É o string ou array que usamos como um substituto para o valor procurado. |
$original |
obrigatório | É o string ou uma array a partir da qual queremos encontrar valor e substituí-lo. |
$limit |
opcional | Este parâmetro limita o número de substituições. |
$count |
opcional | Este parâmetro informa sobre o número de substituições totais feitas em nossa string ou array original. |
Vamos utilizar o padrão /[^0-9]/
para encontrar números na string
. O programa que extrai números da string
é o seguinte:
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
$outputString = preg_replace('/[^0-9]/', '', $string);
echo("The extracted numbers are: $outputString \n");
?>
Resultado:
The extracted numbers are: 46