筆者第一次接觸到正規表示式(Regular Expressions),是在大學時期選修編譯程式(Compiler)的時候。後來開始學習Unix作業系統管理,常常用到的Unix指令,也都支援正規表示式。因為工作的關係,常常需要處理文字檔,所以開始學習Perl,這時發現正規表示式真是個好東西,當大量機械化的文字處理工作迎面而來,正規表示式大幅減少了工程師的負擔。
現在最重要的兩個平臺 - .NET與Java,也不約而同地提供可以支援正規表示式的API。對於一個IT從業人員,正規表示式異常地重要,連Oracle 10g資料庫都開始可以在SQL/PLSQL語法中支援正規表示式,可見正規表示式是一個多麼有趣,具有多用途的工具,堪稱「IT從業人員必備武器」之一。
什麼是正規表示式?
正規表示式並非一個程式語言,而是一種專門用於比對以及置換文字的機制,幾乎各種程式語言,或是涉及文字處理的軟體工具都支援正規表示式。舉例來說, 我們在想要搜尋或取代某個檔案(或字串)當中的滿足某些條件的部分,我們就可以利用正規表示式,指示計算機以較嚴格或較寬鬆的條件去處理。
一般Windows使用者所使用的編輯器的「搜尋」、「取代」功能只能單純地找出某個數字文字序列的存在(例如:搜尋「port」,可能找出「important」);或者我們想一次找出Sun、SUN、sun三種大小寫狀態不同的文字,並忽略掉其他大小寫狀態的文字(sUN、suN…等),這些都是傳統的搜尋取代很難做到的,但是只要利用正規表示式的機制,這些複雜的搜尋條件都可以迎刃而解。
學習正規表示式的好書
正規表示式發展了很長的時間,卻由於缺乏一個統一標準,造成各種環境下的正規表示式語法都不盡相同,無法達到「只寫一次,到處通用」的境界。即使有了正規表示式的基本觀念,卻往往因不同環境之間的語法差異,讓工程師傷透腦筋。
要一次學好正規表示式,O’Reilly出版的《Mastering Regular Expressions》絕對是上上之選,要應付未來各式各樣不同語法的挑戰,同一個作者所撰寫的《Regular Expression Pocket Reference》(中譯本《正規式速查手冊》)更是不可或缺的工具書。
作者在書中第一章,就展示了正規表示式解決「實際問題」的能力,並建議我們把正規表示式當作是一種簡單的語言來學習。所以把正規表示式的結構和語法做了詳細的解釋,讀者可以發現,只要需要對文字做搜尋或取代,正規表示式就可以派上用場,而且幾乎無所不能。
從第二章開始,作者讓正規表示式結合Perl,做點實際的應用,像是處理Email的內文(過濾、搜尋)、或是程式設計師常常需要對使用者所輸入的參數做處理,這些過去我們直覺需要寫程式來完成的工作,其實很多都可以用正規表示式漂亮地幫我們解決掉。
第三章到第五章,作者帶我們深入正規表示式的運作規則,並介紹許多實用的技巧。第六章之後,開始介紹正規表示式在各種程式語言上的運用。
一輩子都受用的東西
在IT領域,很多人常常抱怨東西學了就變舊,又有很多新東西要學。但是仍然有些東西是不會隨時間演進,而有太多的改變,這些東西就具有學習的價值。正規表示式就是這樣的東西,它絕對是每位IT從業人員必備的技巧之一。
《作者簡介》王森
現任昇陽教育訓練中心經理,及Run!PC、iThome專欄作者,曾著深入淺出KJava、Java手機程式設計入門、Java深度歷險、手機/PDA程式設計入門等書,並於Run!PC開闢Java與PDA、Java與手機、深入JDK、Web Services的應用等專欄 。
熱門新聞
2025-12-31
2025-12-31
2025-12-31
2025-12-31
2025-12-31
2025-12-31