assumendo questi testi 'x34', '150px', '650dpi', 'e3r4t5' ... come posso ottenere solo numeri? Voglio dire che voglio 34, 150, 650, 345 senza altri caratteri. Voglio dire ottenere i numeri che questa stringa ha in una variabile.Filtra i numeri in una stringa in php
risposta
Ci scusiamo per unirsi al carrozzone in ritardo, piuttosto che utilizzare Regex, vorrei suggerire di usare PHP di funzioni integrate, che può essere più veloce di Regex .
esempio per ottenere solo i numeri dalla stringa data
<?php
$a = '[email protected]+dk9.0$3e8`~]\]2';
$number = str_replace(['+', '-'], '', filter_var($a, FILTER_SANITIZE_NUMBER_INT));
// Output is 390382
?>
Per aderire agli standard più rigorosi per la domanda, ho aggiornato la mia risposta per dare un risultato migliore.
Ho aggiunto str_replace, come FILTER_SANITIZE_NUMBER_FLOAT
o INT
bandiera non metterà a nudo +
e -
caratteri dalla stringa, perché fanno parte della deroga di PHP.
Anche se ha reso il filtro un po 'lungo, ma ora ha meno possibilità di fallire o di dare risultati inaspettati, e questo sarà più veloce di REGEX.
Edit:
1: reso conto che con FILTER_SANITIZE_NUMBER_FLOAT
, PHP non eliminerà questi personaggi opzionalmente.,eE
, quindi per ottenere i numeri appena puri gentilmente utilizzano FILTER_SANITIZE_NUMBER_INT
2: Se si dispone di una versione PHP inferiore a 5.4, utilizzare gentilmente lo array('+', '-')
anziché la sintassi di array breve..
È possibile utilizzare un'espressione regolare per rimuovere qualsiasi carattere che non sia una cifra:
preg_replace('/\D/', '', $str)
Qui il modello \D
descrive qualsiasi carattere che non è una cifra (complemento a \d
).
$str = "e3r4t5";
$str_numbers_only = preg_replace("/[^\d]/", "", $str);
// $number = (int) $str;
Sostituire tutto ciò che non è un numero e utilizzare tale valore.
$str = "foo1bar2baz3";
$num = intval(preg_replace("/[^0-9]/", "", $str));
Suppongo che la risposta di cui sopra sia più efficiente, considerando l'utilizzo su milioni di entità. –
Utilizzare le funzioni PHP FILTER se si utilizza PHP 5.2.X, 5.3.x, 5.4. Il suo altamente raccomandato
$mixed_input = "e3r4t5";
$only_numbers = filter_var($mixed_input, FILTER_SANITIZE_NUMBER_INT);
prega di passare attraverso con this link sapere di più
Sono d'accordo che è raccomandato. Tuttavia non potrebbe funzionare come previsto se il mixed_input contiene i segni "+" o "-", poiché questi non vengono filtrati, anche nel mezzo della stringa. – Julien
È possibile utilizzare seguente funzione
extract_numbers funzione ($ string) {
preg_match_all ('/ ([\ d] +) /', $ string, $ match);
return $ match;
}
Funziona per me :) – Jasmeen
- 1. C++: estrae i numeri da una stringa
- 2. Javascript: come ottenere i primi 4 numeri in una stringa?
- 3. Come analizzare i numeri da una stringa in JavaScript?
- 4. Regex per trovare i numeri in una stringa
- 5. Rimozione di tutto tranne i numeri in una stringa
- 6. Come riempire tutti i numeri in una stringa
- 7. Come convertire i numeri in stringa indicativa
- 8. Jquery conta solo numeri in una stringa
- 9. Come dividere i caratteri Tamil in una stringa in PHP
- 10. PHP ottiene una serie di numeri dalla stringa con intervallo
- 11. Filtra i file in una cartella molto grande
- 12. Come si filtra una stringa in modo che vengano restituiti solo i caratteri nell'elenco?
- 13. Come convertire una stringa in INTEGER univoco in php
- 14. escludendo tutti i caratteri di una stringa, lasciando i numeri
- 15. Ottenere numeri da stringa con PHP
- 16. Entity Framework filtra i dati per stringa sql
- 17. Stringhe/numeri orientati agli oggetti in PHP?
- 18. PHP Sostituisce l'ultima occorrenza di una stringa in una stringa?
- 19. scambia due parole in una stringa php
- 20. Come troncare una stringa UTF8 in PHP?
- 21. Filtra site.related_posts in Jekyll
- 22. Come rimuovere i numeri finali da una stringa?
- 23. Utilizzo di LINQ per analizzare i numeri da una stringa
- 24. Filtra una serie di numeri in cui 0 è un input valido
- 25. Come dividere una stringa mista con i numeri
- 26. Filtra una raccolta osservabile
- 27. Convertire stringa di numeri separati da spazi bianchi in una stringa in numeri interi e inserirli in variabili
- 28. Filtra i risultati in angularjs in base al valore selezionato
- 29. espressioni regolari per estrarre i numeri da una stringa
- 30. In che modo PHP eval() conta i numeri di riga?
Esattamente. http://ideone.com/WKtth –
perché non utilizzare le funzioni di filtro PHP da ora in poi, che è raccomandato. La risposta è la seguente sotto – Haijerome