使用Ruby,我試圖解析一些文檔,我需要拆分文本塊,每個文本塊都有一個標題,並且後面跟着未知長度的文本,然後將它們推送到陣列;通過使用Ruby的標題拆分文本塊
SECTION 1. A HEADING
Some undetermined length of text,
which can be multiple lines and paragraphs.
SECTION 2. ANOTHER HEADING
Another big block of text.
應該成爲
["SECTION 1. A HEADING
Some undetermined length of text,
which can be multiple lines and paragraphs.",
"SECTION 2. ANOTHER HEADING
Another big block of text."]
我可以只使用string.split(/\n\n\n/)
,但我想更具體的,因爲我不能保證每個部分都會有後兩個空行的東西。多一點實驗讓我意識到這一點;
string.split(/(?:^|\n)(SECTION.+\n)/).each do |s|
sections << s
end
,但我不得不再次處理輸出以獲得我所需要的。
有沒有辦法做到這一點,而不必做多次通行證?
感謝您的幫助。
只要看看用線「部分n」,直到找到另一個,繼續建立一個部分字符串。 –
通過RegExes一次一行地抓取文本只是看起來有點太Perlish,我想也許Ruby有一些更簡潔:) –
你可以閱讀任何語言的整個文件文件和玩正則表達式遊戲,IMO我會而只是把它放在一邊,因爲它目前的形式並不是一個有趣的問題。 –