asumiendo que tengo estos textos 'x34', '150px', '650dpi', 'e3r4t5' ... ¿cómo puedo obtener solo números? Quiero decir que quiero 34, 150, 650, 345 sin ningún otro personaje. quiero decir obtener los números que tiene esta cadena en una variable.Filtrar números en una cadena en php
Respuesta
Lo siento por unirse al carro tarde, en lugar de utilizar expresiones regulares, sugeriría que utilice PHP de funciones integradas, que puede ser más rápido que la expresión regular .
por ejemplo para obtener sólo los números de la cadena dada
<?php
$a = '[email protected]+dk9.0$3e8`~]\]2';
$number = str_replace(['+', '-'], '', filter_var($a, FILTER_SANITIZE_NUMBER_INT));
// Output is 390382
?>
Para cumplir con las normas más estrictas para su pregunta, he actualizado mi respuesta para dar un mejor resultado.
he añadido str_replace, como FILTER_SANITIZE_NUMBER_FLOAT
o INT
bandera no se tira +
y -
caracteres de la cadena, porque son parte de la regla de excepción de PHP.
Aunque ha hecho que el filtro sea un poco largo, pero ahora tiene menos posibilidades de fallar o darle resultados inesperados, y esto será más rápido que REGEX.
Editar:
1: dado cuenta de que con FILTER_SANITIZE_NUMBER_FLOAT
, PHP no elimina los siguientes caracteres opcionalmente.,eE
, por lo tanto, para obtener números apenas puros utilizan amablemente FILTER_SANITIZE_NUMBER_INT
2: Si tiene una versión de PHP menor que 5.4, utilice amablemente array('+', '-')
en lugar de la sintaxis de matriz corta ['+', '-']
.
Se puede utilizar una expresión regular para eliminar cualquier carácter que no sea un dígito:
preg_replace('/\D/', '', $str)
Aquí el patrón \D
describe cualquier carácter que no sea un dígito (a complementar \d
).
$str = "e3r4t5";
$str_numbers_only = preg_replace("/[^\d]/", "", $str);
// $number = (int) $str;
Reemplace todo lo que no sea un número y use ese valor.
$str = "foo1bar2baz3";
$num = intval(preg_replace("/[^0-9]/", "", $str));
Supongo que la respuesta anterior es más eficiente, considerando el uso en millones de entidades. –
Utilice las funciones de PHP FILTER si está utilizando PHP 5.2.X, 5.3.x, 5.4. Su muy recomendable
$mixed_input = "e3r4t5";
$only_numbers = filter_var($mixed_input, FILTER_SANITIZE_NUMBER_INT);
favor seguir adelante con this link saber más
Acepto que esto se recomienda. Sin embargo, no podría funcionar como se espera si mixed_input contiene signos '+' o '-', ya que estos no se filtran, incluso en el medio de la cadena. – Julien
Puede utilizar la función siguiente
extract_numbers de función ($ cadena) {
preg_match_all ('/ ([\ d] +) /', $ cadena, $ partido);
return $ match;
}
Funciona para mí :) – Jasmeen
- 1. Extraiga números de punto flotante de una cadena en PHP
- 2. Filtrar etiquetas de anclaje en una cadena
- 3. Jquery cuenta solo números en una cadena
- 4. Obtener los números de cadena con PHP
- 5. Borrar números de una Cadena
- 6. dividir una cadena en una matriz de números
- 7. Convertir cadena que contiene varios números en números enteros
- 8. Regex para validar alfabéticos y números en la cadena localizada
- 9. Javascript: ¿cómo obtener los primeros 4 números en una cadena?
- 10. Cómo rellenar todos los números en una cadena
- 11. cómo dividir una cadena contiene números en java?
- 12. ¿Cómo convertir una cadena de números clojure en enteros separados?
- 13. ¿Cómo formatear una cadena plana con números enteros en erlang?
- 14. ¿Cómo agarrar números en el medio de una cadena? (Python)
- 15. jQuery/Obtener números de una cadena
- 16. ¿Cómo incrementar una cadena alfanumérica en PHP?
- 17. PHP buscando una cadena en un archivo
- 18. primera línea de una cadena en PHP
- 19. Ejecutar código PHP en una cadena
- 20. Cómo truncar una cadena UTF8 en PHP?
- 21. Compruebe si una cadena contiene los números
- 22. Convertir una cadena de números separados en espacios en blanco en una cadena en enteros y colocarlos en las variables
- 23. ordenar cadena números
- 24. extremadamente grandes números enteros en PHP
- 25. ¿Cómo encontrar una cadena en una matriz en PHP?
- 26. Buscar una cadena o parte de cadena en PHP
- 27. cómo validar números decimales en PHP
- 28. Generar números aleatorios criptográficamente seguros en php
- 29. ¿Cómo trabajar con números grandes en PHP?
- 30. ¿Cómo puedo contar los números en una cadena de texto/números mixtos?
Exactamente. http://ideone.com/WKtth –
por qué no utilizar las funciones de filtro PHP a partir de ahora, lo cual es recomendable. Encuentre mi respuesta debajo de – Haijerome