終於把第一個項目啃的差很少了,對於一個初學者來講頗有難度。正則表達式
這個項目的目的是將文本轉化爲標記語言(例子中是HTML)。
基本的思路是這樣的:
1.讀取文本文件,利用生成器遍歷文本,並將文本轉化爲處理的基本單位——塊(block)
2.使用正則表達式過濾塊中的強調語句、URL、email地址。添加相應的標籤,如<em></em> <a></a>等。
3.根據語言特色制定一些規則,對塊逐條匹配,添加相應的標籤。如<p></p> <ul></ul>等。
相應的,實現的時候分紅了幾個模塊:
markup.py:主模塊,調用各個模塊實現業務邏輯。
util.py:生成器,遍歷文本,轉化爲塊。
handlers.py:過濾塊中的特殊語句。爲rules指定的塊添加標籤,輸出結果。
rules.py:判斷markup指定的塊的類型,調用handlers處理。
我的感受比較難的地方:
1.模塊的組織,類的設計
2.迭代器,生成器
3.正則表達式,re中相關函數的使用
4.自省