要學習一門技術,我認為首先要了解其歷史和來源,而不是一開始就來使用它,學習正則表達式也是如此。學習它,首先要清楚它應運而生,解決了什么問題,而后繼往開來,不斷更新新的文化。和朋友探討正則表達式,發現他的用法就是在網上查閱相關regex語法,用了后就忘了,然后使用的時候再看。我想,這不是我的目標。于語法琢磨太多,往往忽略了正則表達式本身。這樣我雖然對正則表達式的具體規則有所了解,但終究只見樹木不見森林。
技術圖書的主要使命是傳播專業知識。而專業知識分為框架知識和具體知識。框架性知識需要通過系統的閱讀和學習掌握,而大量的具體知識,則主要通過日常工作的積累以及隨用隨查的學習來逐漸補充。因此,我學習正則表達式也一樣,先學其框架,在學具體使用。往這個框架中添加血與肉。那么我想《精通正則表達式》便是不二之選。大概看了目錄,前六章中,主要講原理。后四章,則分別講解在java,Perl,.net,PHP這幾門語言中的具體應用。因此,我想后面四章我可以不用看了,因為這幾門語言我都不會。。。但還好Python也支持regex,我可以另尋他途。前六章中,1-3章節主要用于了解和入門,4-6則講原理和應用。于我而言,初學者嘛,先看懂1-3章節再說吧!
所謂正則表達式,就是一種描述字符串結構模式的形式化表達方式。在發展的初期,這套方法僅限于描述正則文本,故此得名“正則表達式regular expression”。隨著正則表達式研究的深入和發展,特別是Perl語言的實踐和探索,正則表達式能力已大大突破了傳統的、數學上的限制,成為了威力巨大的實用工具,在幾乎所有主流語言中獲得支持。為什么正則表達式具有如此巨大的魅力? 這可能需要我不斷學習探索才能得出的結果。
完整的正則表達式由兩種字符構成。特殊字符(也稱為元字符metacharacters),其他為文字,也叫普通文本字符normal characters。
完整的正則表達式由小的構建模塊單元組成,每個單獨的構建模塊都很簡單,不過因為他們能夠以無窮多種方式組合,將它們結合起來實現特殊目標必須依靠經驗。