ruby regex find and replace

I have the following output:
time = 15:40:32.81

And I want to eliminate : and the . so that it looks like this:
15403281

I tried doing a

time.gsub(/\:\s/,'')

but that didn't work.

7
задан Nakilon 20 November 2010 в 22:27
поделиться

3 ответа

"15:40:32.81".gsub(/:|\./, "")
12
ответ дан 6 December 2019 в 08:13
поделиться
time = '15:40:32.81'
numeric_time = time.gsub(/[^0-9]+/, '')
# numeric_time will be 15403281

[^ 0-9] указывает класс символов , содержащий любой символ, не являющийся цифрой ( ^ в начале класса отрицает его) , который затем будет заменен пустой строкой (или, другими словами, удален).

(Обновлено для замены \ d на 0–9 для ясности, хотя они эквивалентны).

5
ответ дан 6 December 2019 в 08:13
поделиться

Если вы хотите изящно использовать объект реального времени ...

time = Time.now
time.strftime("%H%M%S") + time.usec.to_s[0,2]
# returns "15151788"
3
ответ дан 6 December 2019 в 08:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: