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