2013-06-05 67 views
0

1'm試圖用Ruby和正則表達式的長字符串分割成整個字符串發生的時間戳分離塊。Ruby和正則表達式不精確

「上午10:59 Lorem存有胡蘿蔔,生態番茄湯。開發人員ID>之前。茉莉花凌晨3:30的時候,但是通過融資不是香蕉,但時間>悲傷只是低頭酒精。然而,大量的花生沙拉局製造喉嚨胡蘿蔔>現在,對於消毒顫動獅子或昂貴的。9:20 PM茉莉tincidunt裙子。「

下面是運行拉出每個塊循環1'm。

while text.length > 1 
    begin_entry = text.index(/\d{1,2}[:]\d{2}\s(a|p)[.][m][.]/) 
    end_entry = text.index(/\d{1,2}[:]\d{2}\s(a|p)[.][m][.]/, begin_entry + 1) 
    blot = text.slice!(begin_entry, end_entry) 
end 

1當這個運行時,第一個條目被捕獲的時間戳開始查找。然而,到底是永遠正確的。

而不是「下午10時59 Lorem存有胡蘿蔔,增強大學生開發者。Phasellus在開發者。」送一「」下午10時59分Lorem存有悲坐阿梅德,consectetur adipiscing ELIT。船在開發商。 3:30一個。「

而且事情變得更加關閉的遍歷字符串中運行。該項目的開頭總是正確與包含在子開始的時間,其到底是從來沒有的,但是。

回答

0
text.split(/(\d{1,2}:\d{1,2}\s[ap]\.m\.)/).drop(1).each_slice(2).map(&:join) 
+0

感謝的作品。但1'm奇怪,爲什麼嘗試沒有工作? – acdanger