Cómo extraer números de una cadena en PHP
-
Usa la función
preg_match_all()
para extraer números de una cadena en PHP -
Usa la función
filter_var()
para extraer números de una cadena en PHP -
Usa la función
preg_replace()
para extraer números de una cadena en PHP
En este artículo, introduciremos métodos para extraer números de una string
en PHP.
- Usando la función
preg_match_all()
- Usando la función
filter_variable()
- Usando la función
preg_replace()
Usa la función preg_match_all()
para extraer números de una cadena en PHP
Podemos usar la función incorporada preg_match_all()
para extraer números de una string
. Esta función busca globalmente un patrón especificado de una string
. La sintaxis correcta para usar esta función es la siguiente:
preg_match_all($pattern, $inputString, $matches, $flag, $offset);
La función incorporada preg_match_all()
tiene cinco parámetros. Los detalles de sus parámetros son los siguientes
Parámetros | Descripción | |
---|---|---|
$pattern |
obligatorio | Es el patrón que queremos comprobar en la string dada. |
$inputString |
obligatorio | Es la string por la que queremos buscar el patrón dado. |
$matches |
opcional | Si se da este parámetro, entonces la función almacena el resultado del proceso de emparejamiento en él. |
$flags |
opcional | Este parámetro tiene dos opciones: PREG_OFFSET_CAPTURE y PREG_UNMATCHED_AS_NULL . Puedes leer su descripción aquí. |
$offset |
opcional | Le dice la función de dónde empezar el proceso de emparejamiento. Normalmente, la búsqueda comienza desde el principio. |
Esta función devuelve una variable booleana
. Devuelve true si el patrón dado existe.
El siguiente programa muestra cómo podemos usar la función preg_match_all()
para extraer números de una cadena
dada.
<?php
$string = 'Sarah has 4 dolls and 6 bunnies.';
preg_match_all('!\d+!', $string, $matches);
print_r($matches);
?>
Hemos usado el patrón !\d+!
para extraer números de la cadena
.
Resultado:
Array
(
[0] => Array
(
[0] => 4
[1] => 6
)
)
Usa la función filter_var()
para extraer números de una cadena en PHP
También podemos usar la función filter_var()
para extraer números de una cadena
. La sintaxis correcta para usar esta función es la siguiente:
filter_var($variableName, $filterName, $options)
La función filter_var()
acepta tres parámetros. El detalle de sus parámetros es el siguiente
Parámetros | Descripción | |
---|---|---|
$variableName |
obligatorio | Es la variable a filtrar. |
$filterName |
obligatorio | Es el nombre del filtro que se aplicará a la variable. Por defecto, es FILTER_DEFAULT |
$options |
obligatorio | Este parámetro indica las opciones a utilizar. |
Hemos usado el filtro FILTER_SANITIZE_NUMBER_INT
. El programa que extrae los números de la string
es el siguiente:
<?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
Usa la función preg_replace()
para extraer números de una cadena en PHP
En PHP, también podemos usar la función preg_replace()
para extraer números de una string
. La sintaxis correcta para usar esta función es la siguiente:
preg_replace($regexPattern, $replacementVar, $original, $limit, $count)
La función preg_replace()
acepta cinco parámetros. El detalle de sus parámetros es el siguiente
Parámetros | Descripción | |
---|---|---|
$regexPattern |
obligatorio | Es el patrón que buscaremos en la string o array original. |
$replacementVar |
obligatorio | Es la string o array que usamos como reemplazo del valor buscado. |
$original |
obligatorio | Es la string o un array de la que queremos encontrar valor y reemplazarla. |
$limit |
opcional | Este parámetro limita el número de reemplazos. |
$count |
opcional | Este parámetro indica el número de reemplazos totales hechos en nuestra string o array original. |
Usaremos el patrón /[^0-9]/
para encontrar números en la string
. El programa que extrae los números de la string
es el siguiente:
<?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