En PHP, puedes extraer números de una cadena usando expresiones regulares y la función preg_match_all()
. Aquí hay un ejemplo de cómo extraer todos los números de una cadena:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
Esto generará:
Array ( [0] => 15 [1] => 3 )
Explicación:
/[0-9]+/
busca uno o más dígitos consecutivos.preg_match_all()
busca en la cadena todas las apariciones de la expresión regular y almacena las coincidencias en la matriz $matches
.print_r()
se utiliza para mostrar el contenido de la matriz.También puedes usar la función preg_replace()
para eliminar caracteres no numéricos de una cadena y conservar solo los números:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
Esto generará:
15 3
Explicación:
/D/
coincide con cualquier carácter que no sea un dígito.preg_replace()
reemplaza todos los caracteres que no son dígitos con una cadena vacía, eliminándolos efectivamente de la cadena.Hay otra forma de hacerlo, pero no es tan confiable como las dos opciones anteriores. Podemos usar la función incorporada de PHP filter_var()
para extraer int de una cadena.
$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;
Esto generará:
153