2010-08-18 34 views

Respuesta

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

buena respuesta, gracias – rahrahruby

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

[^0-9] especifica un character class que contiene cualquier carácter que no es un dígito (^ al comienzo de una clase la niega), que luego se sustituye por una cadena vacía (o, en otras palabras, eliminado).

(actualizado para reemplazar \d por 0-9 por claridad, aunque son equivalentes).

+0

¡Gracias por toda su ayuda! – rahrahruby

+0

El + no es necesario; time.gsub (/ [^ \ d] /, "") funciona igual de bien. – todb

+0

@todb cierto, pero hará que se reemplace una porción más grande de la cadena a la vez si aparecen varios caracteres no numéricos en una fila. –

3

Si quiere ser de lujo y utilizar un objeto hora real ...

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

Pero va a editar la variable. Si no lo quiere:

time.dup.delete ':.' 
+0

En realidad, 'delete!' Llevaría a cabo la eliminación en su lugar. Por otra parte, esta respuesta es antigua, así que quién sabe cómo eran las cosas en 2010. – nus

Cuestiones relacionadas