時候我有一個字符串: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>
時候我有一個字符串: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>
你可以這樣做:
"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-9] {1,2}:[0-9] {1,2})與 '$ 1'
這只是返回相同的字符串。使用括號和'$ 1'是多餘的。改用'$ 0'。 – sawa 2011-05-20 19:32:37
使用以下正則表達式/((2[0-3])|(1[0-9])|(0?[0-9])):([0-5]?[0-9])/
匹配,因爲它還會檢查時間是正確的格式
請解釋這個正則表達式有什麼問題,所以它得到了一個downvote – 2011-05-20 20:06:20
我會在分鐘的第一個數字中說'?',因爲沒有人會在下午13:4記錄。我喜歡你限制正則表達式只匹配有效時間。 – Chubas 2011-05-20 20:26:43
>> "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>"
編輯替換每一個:如果你需要,你可以爲正確的時間正則表達式檢查,但我並沒有理會這個例子。
這不是問什麼。 – sawa 2011-05-20 19:31:38
謝謝JCorcuera! – Kir 2011-05-20 19:38:03
你不需要'each','gsub'可以佔據一個塊。但是你也不需要,因爲它可以在'gsub'中直接完成(參見下面的答案)。 – 2011-05-20 20:07:50