tengo el siguiente resultado:
time = 15:40:32.81
rubí expresiones regulares buscar y reemplazar
Y quiero eliminar :
y la .
para que se vea así:
15403281
He intentado hacer un
time.gsub(/\:\s/,'')
pero eso no funcionó.
tengo el siguiente resultado:
time = 15:40:32.81
rubí expresiones regulares buscar y reemplazar
Y quiero eliminar :
y la .
para que se vea así:
15403281
He intentado hacer un
time.gsub(/\:\s/,'')
pero eso no funcionó.
"15:40:32.81".gsub(/:|\./, "")
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).
¡Gracias por toda su ayuda! – rahrahruby
El + no es necesario; time.gsub (/ [^ \ d] /, "") funciona igual de bien. – todb
@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. –
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"
time.delete ':.'
Pero va a editar la variable. Si no lo quiere:
time.dup.delete ':.'
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
buena respuesta, gracias – rahrahruby