淺說正則——會了就不會忘


           閒來無事,看了看新浪最近的面試題,其中關於正則的題目,讓自己意識到了這一塊的薄弱。

           閒來無事,蒐集了很多資料(ps:三中全會這幾天,用google特慢,不得以用bd,不說了,你懂得,真實屌絲的百科全書,建議能用google就google),研究了一下正則。有一些小感觸,正則沒有你想象中那麼難,正則不是那麼簡單。

           記得有位貴人告訴我,正則會了就不會忘。當時將信將疑。

           怎麼看待正則?難,不難,很容易?對於正則,我想說:會了就不會忘。

           很多同行,包括之前的自己對於正則都是拿來主義,用到的時候,一搜就有。大體上能看懂,深究有不明白。就是那句話恰到好處——最熟悉的陌生人

           關於正則的基礎知識,就沒必要贅述,到處都是。

            還是想跟大家分享兩篇,東西好嘛。PHP正則快速學習正則入門

           這裏主要想說的是電子郵箱地址的正則匹配。

           下面的寫法最常見:/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ ;

            還有諸如:/^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;

                   /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;

                   (\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*;)*;

         這些都只能滿足普通的要求,專門對比了一下幾個門戶的郵箱地址註冊規則,見下圖(騰訊的不太友好,輸入後纔有規則提示,沒有拿來):

  


  

  

  

                          差別真的很大,網上的很多也不滿足如寫的域名規則:

       

                    嘗試着寫的一個電子郵件驗證,希望大家拍磚:$preg = "/^[a-zA-Z0-9]+(\.\w+)*[^_]@[^-][a-zA-Z0-9-]+[^-]\.[^-][a-zA-Z0-9-]+[^-]$/ "                   

                    做爲一名工程師,要得就是專業,而正則就是專業性的體現。多花一點時間,深入鑽研,會了就不會忘。

發佈了62 篇原創文章 · 獲贊 33 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章