2010-08-18 30 views

risposta

8
"15:40:32.81".gsub(/:|\./, "") 
+0

buona risposta, grazie – rahrahruby

4
time = '15:40:32.81' 
numeric_time = time.gsub(/[^0-9]+/, '') 
# numeric_time will be 15403281 

[^0-9] specifica un character class contenente qualsiasi carattere che non è una cifra (^ all'inizio di una classe nega), che sarà poi sostituito da una stringa vuota (o, in altre parole, rimosso).

(aggiornato per sostituire \d con 0-9 per chiarezza, sebbene siano equivalenti).

+0

Grazie per tutto il vostro aiuto! – rahrahruby

+0

Il segno + non è necessario; time.gsub (/ [^ \ d] /, "") funziona altrettanto bene. – todb

+0

@todb true, ma causerà la sostituzione di una parte più grande della stringa in una volta se più caratteri non numerici vengono visualizzati in una riga. –

3

Se si vuole essere di fantasia e utilizzare un oggetto tempo effettivo ...

time = Time.now 
time.strftime("%H%M%S") + time.usec.to_s[0,2] 
# returns "15151788" 
2
time.delete ':.' 

Ma ti modificare la variabile. Se non lo vuoi:

time.dup.delete ':.' 
+0

In realtà "cancella!" Eseguiva l'eliminazione sul posto. Poi di nuovo questa risposta è vecchia, quindi chissà che cosa è successo nel 2010. – nus