《精通正則表達式》書評

第一次接觸正則表達式,還是在2000年使用Perl CGI做Web開發的時候。Perl給我留下最深刻印象的就是它的正則表達式。我使用Perl的正則表達式開發了一個簡單的模板引擎,可以將程序邏輯與頁面的HTML標記分離開。正則表達式可以以非常簡練的方式高效地完成複雜的文本處理工作。如果不使用正則表達式,做相同的文本處理需要耗費的資源(CPU週期、內存、開發時間)要多得多。精通正則表達式,就好像是掌握了一件威力巨大的獨門暗器,可以在開發的很多關鍵時刻克敵制勝。不精通正則表達式是沒有資格自居爲Perl高手的。 正是強大的正則表達式使得Perl取代傳統的sed、awk等老舊的Unix文本處理工具,成爲了系統維護人員的最愛,並且使得Perl在基於CGI的第一代Web開發技術中獨佔鰲頭。在我的印象中,1998年之前的第一代電子商務網站(規模最大的一類網站),幾乎都是基於Perl CGI開發的。

後來我們轉向了第二代Web開發技術JSP,在得到了更好的代碼可維護性的同時,最大的感覺就是使用Java來做文本處理實在是很笨拙,當時Java核心類庫還不支持正則表達式。這使我很懷念過去使用Perl的正則表達式時那種自己無所不能的美好感覺。

Java發展到了1.4版,在覈心類庫級別提供了對正則表達式的支持。這些支持並沒有很多新意,但是補充了Java的一個嚴重的不足。

後來我還在很多語言和開發工具中找到了正則表達式的身影,例如JavaScript、Ruby、vi、sed、grep、Apache mod_rewrite等等。現代的編程語言,大多都能夠支持正則表達式了。這些不同的正則表達式實現原理上都是一樣的,使用方法大同小異。只要深入學習過某種語言的正則表達式,學習另一種語言的正則表達式易如反掌。

正則表達式幾乎是所有文本處理工具的基礎,由於Web開發的大部分工作都是面向文本處理的(與HTML打交道),因此正則表達式顯得越來越重要。但是出於利潤上的考慮,國內的出版社對於這些基礎技術一向重視不足。這妨礙了很多開發者技術的精進,他們只能通過網絡上流傳的一些零散的教程來進行學習。

O'Reilly的這本《精通正則表達式》是一本名著,也是目前最好的正則表達式方面的專著,至今已經出到了第3版。博文視點將它引進到了國內,對於國內的開發者來說,可謂是一件遲來的禮物。但是出版這本書的意義非常大,甚至對於一些自以爲已經熟悉正則表達式的老手來說,這本書也能夠帶來很多新的營養,有助於他們充分挖掘正則表達式的潛力。閱讀這本書,在我看來就是一場集體補鈣。改寫電影《大腕》裏面的一句臺詞:“我們美國開發界已經集體補過鈣了,現在呢,就輪到你們中國開發界了。”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章