2011-05-20 214 views
0

時候我有一個字符串:Something 8:45 foo bar foo bar at 23:50突出顯示文本

如何突出和標記與<b>標籤的所有時間組合,串狀8:45和23:50? 因此,我希望有Something <b>8:45</b> foo bar foo bar at <b>23:50</b>

回答

0

你可以這樣做:

"Something 8:45 foo bar foo bar at 23:50".gsub(/\d{1,2}:\d{2}/).each {|hour| hour = "<b>#{hour}<b>" } 

識別小時,用<b>hour<b>

+0

這不是問什麼。 – sawa 2011-05-20 19:31:38

+0

謝謝JCorcuera! – Kir 2011-05-20 19:38:03

+0

你不需要'each','gsub'可以佔據一個塊。但是你也不需要,因爲它可以在'gsub'中直接完成(參見下面的答案)。 – 2011-05-20 20:07:50

-1

容易

替換([0-9] {1,2}:[0-9] {1,2})與 '$ 1'

+0

這只是返回相同的字符串。使用括號和'$ 1'是多餘的。改用'$ 0'。 – sawa 2011-05-20 19:32:37

0

使用以下正則表達式/((2[0-3])|(1[0-9])|(0?[0-9])):([0-5]?[0-9])/匹配,因爲它還會檢查時間是正確的格式

+0

請解釋這個正則表達式有什麼問題,所以它得到了一個downvote – 2011-05-20 20:06:20

+0

我會在分鐘的第一個數字中說'?',因爲沒有人會在下午13:4記錄。我喜歡你限制正則表達式只匹配有效時間。 – Chubas 2011-05-20 20:26:43

1
>> "Something 8:45 foo bar foo bar at 23:50".gsub(/\b\d{1,2}:\d{2}\b/, '<b>\0</b>') 
#=> "Something <b>8:45</b> foo bar foo bar at <b>23:50</b>" 

編輯替換每一個:如果你需要,你可以爲正確的時間正則表達式檢查,但我並沒有理會這個例子。