2010-08-18 14 views
5

मैं निम्नलिखित उत्पादन:
time = 15:40:32.81माणिक regex खोज और बदल

और मैं और . है कि यह इस तरह दिखता है : को खत्म करना चाहते हैं तो:
15403281

मैं एक

कर की कोशिश की
time.gsub(/\:\s/,'') 

लेकिन यह काम नहीं किया।

उत्तर

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

अच्छा उत्तर, धन्यवाद – rahrahruby

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

[^0-9] किसी भी चरित्र है जो एक अंकों (^ शुरुआत के एक वर्ग यह नकारता पर) है, जो तब (दूसरे शब्दों में या, हटाया) एक रिक्त स्ट्रिंग से प्रतिस्थापित किया जाएगा नहीं है जिसमें एक character class निर्दिष्ट करता है।

(स्पष्टता के लिए 0-9 के साथ \d को बदलने के लिए अपडेट किया गया, हालांकि वे बराबर हैं)।

+0

आपकी सभी मदद के लिए धन्यवाद! – rahrahruby

+0

+ आवश्यक नहीं है; time.gsub (/ [^ \ d] /, "") बस काम करता है। – todb

+0

@todb सच है, लेकिन स्ट्रिंग के एक बड़े हिस्से को एक बार में प्रतिस्थापित किया जाएगा यदि एकाधिक गैर-संख्यात्मक वर्ण पंक्ति में दिखाई देते हैं। –

3

आप कल्पना हो सकता है और एक वास्तविक समय वस्तु उपयोग करना चाहते हैं ...

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

लेकिन यह अपने चर को संपादित करेंगे। यदि आप इसे नहीं चाहते हैं:

time.dup.delete ':.' 
+0

असल में 'हटाएं!' जगह में हटाएंगे। फिर फिर यह जवाब पुराना है, इसलिए कौन जानता है कि 2010 में क्या चीजें पसंद हैं। – nus

संबंधित मुद्दे