2013-07-24 76 views
-2

我試圖做一個GSUB,當我作出這樣的輸入:正則表達式模式 - GSUB紅寶石

'09/02 10:00 HS任何字符串」

會還給我喜歡的東西:

'09/02 10:00'

所以我GSUB應該拿出所有的非數字,但我需要的字符串‘:’和‘/’留

請幫助。

+0

你所描述會給'「09/0210:00」'在vinodadhikary的答案,而不是像你給的那樣「09/02 10:00」。 – sawa

+1

**向我們展示您到目前爲止所嘗試的內容。**不要描述它,但編輯問題並粘貼到實際代碼中。然後告訴我們什麼沒有工作。當你嘗試時發生了什麼?你得到不正確的結果了嗎?你有沒有得到結果?如果結果不正確,是什麼使它們不正確?你想要什麼呢?你有沒有得到任何正確的結果?如果是這樣,他們是什麼?不要讓我們猜測。 –

回答

1

拿出所有的非數字字符串,但我需要「:」和「/」留

"09/02 10:00 hs any string".gsub(/[^0-9\/:]/, '')  
# "09/0210:00" 
+0

最後你不需要'to_s'。你應該使用'\ d'來代替'0-9'。否則,如果你有一個像「0-9 \ /:」這樣的字符串,你可以做'tr(「0-9 \ /:」,「」)''。 – sawa

+0

@sawa,你是對的不需要'to_s'作爲'gsub'返回字符串,複製粘貼錯誤:) – vee

0

試試這個:

result = '09/02 10:00 hs any string'.gsub(/(?<=^\d{2}\/\d{2} \d{2}:\d{2}).*/, '') 

的想法是無法捕捉的日期時間把它在一個回顧後。

+0

不,它沒有。所有的琴絃都保持不變。不管怎麼說,還是要謝謝你 ! –

+0

@AjojoAmiras:你必須顯示結果,而不是你的舊變量!它的工作原理,我測試過了! –

+0

我這樣做,但它不工作... 我的輸入和輸出是一樣的。 –