ho il seguente output:
time = 15:40:32.81
ruby regex trovare e sostituire
E voglio eliminare :
e la .
in modo che assomiglia a questo:
15403281
ho provato a fare un
time.gsub(/\:\s/,'')
ma che non ha funzionato.
ho il seguente output:
time = 15:40:32.81
ruby regex trovare e sostituire
E voglio eliminare :
e la .
in modo che assomiglia a questo:
15403281
ho provato a fare un
time.gsub(/\:\s/,'')
ma che non ha funzionato.
"15:40:32.81".gsub(/:|\./, "")
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).
Grazie per tutto il vostro aiuto! – rahrahruby
Il segno + non è necessario; time.gsub (/ [^ \ d] /, "") funziona altrettanto bene. – todb
@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. –
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"
time.delete ':.'
Ma ti modificare la variabile. Se non lo vuoi:
time.dup.delete ':.'
In realtà "cancella!" Eseguiva l'eliminazione sul posto. Poi di nuovo questa risposta è vecchia, quindi chissà che cosa è successo nel 2010. – nus
buona risposta, grazie – rahrahruby