嗨,鑑於以純文本格式的數據集,如下列:如何解析一些維基標記
==Events==
* [[312]] – [[Constantine the Great]] is said to have received his famous [[Battle of Milvian Bridge#Vision of Constantine|Vision of the Cross]].
* [[710]] – [[Saracen]] invasion of [[Sardinia]].
* [[939]] – [[Edmund I of England|Edmund I]] succeeds [[Athelstan of England|Athelstan]] as [[King of England]].
*[[1275]] – Traditional founding of the city of [[Amsterdam]].
*[[1524]] – [[Italian Wars]]: The French troops lay siege to [[Pavia]].
*[[1553]] – Condemned as a [[Heresy|heretic]], [[Michael Servetus]] is [[burned at the stake]] just outside [[Geneva]].
*[[1644]] – [[Second Battle of Newbury]] in the [[English Civil War]].
*[[1682]] – [[Philadelphia]], [[Pennsylvania]] is founded.
我想結束了集合的NSDictionary
或其他形式,這樣我可以有年份(左側的數字)映射到摘錄(右側的文本)。原來這就是「模板」是這樣的:
*[[YEAR]] – THE_TEXT
雖然我想摘錄是純文本,也就是沒有維基標記所以沒有[[
套。實際上,使用別名鏈接(例如[[Edmund I of England|Edmund I]]
)可能會很困難。
我不是那種經驗豐富的正則表達式,所以我有幾個問題。我應該首先嚐試「美化」數據嗎?例如,刪除始終爲==Events==
的第一行,並刪除發生的[[
和]]
?
或者更好的解決方案:我應該在通行證中這樣做嗎?舉例來說,第一遍我可以將每行分隔成* [[710]]
和[[Saracen]] invasion of [[Sardinia]]
。並將它們存儲到不同的NSArrays
。
然後經過第一NSArray
多年,只得到了[[]]
內的文本(我說的文本,而不是數字,因爲它可以公元前530年),所以* [[710]]
變得710
。
再來說摘錄NSArray
,經歷以及如果[[some_article|alias]]
發現,使它只能是[[alias]]
不知何故,然後刪除所有[[
和]]
套?
這可能嗎?我應該使用正則表達式嗎?你有什麼想法可以提出正則表達式可能有幫助嗎?
謝謝!對此,我真的非常感激。
編輯:對不起,我只是想解析上述數據。假設這是我遇到的唯一標記類型。我不一定期待解析wiki標記,除非已經有一個預先存在的庫來執行此操作。再次感謝!
謝謝,是的,有人把我介紹給那個圖書館。 (我沒有讓你失望)。 – 2009-10-27 22:40:49