php寫正規的訣竅和常用正規則

寫正規的訣竅

女孩和男孩戀愛時的訣竅通常是:測試你是不是對我好一點,如果是的,咱們的關係就更好一點。

而正則的訣竅和戀愛的訣竅基本上一致:寫一點、測一點。

因為,我們需要不斷的正規則,用preg_match對比是不是能匹配成功。成功了,再寫後面的一點。直到寫完,全部配對成功為止!

例如,我要寫一個郵件信箱的正規。我先要做的事情,將常用的郵箱格式全部列出來。例如:

phpcn@php.cn phpcn@corp.baidu.cm phpcn@126.com phpcn@xxx.com 12345@qq.com

常用的格式主要有這樣一些。那我們就可以來分析:

    1.先配對@之前的字元\w+(因為是0-9A-Za-z_)

    2.第二個跟一個@符號

    3.第三個再寫上[a-zA-Z0-9-]+ 因為qq和126這些主網域是不能有底線的

    4.corp.baidu. 或是126. 通常郵箱後綴都是這樣的。所以我們可以寫成:([a-zA-Z0-9-]+.){1,2}

    5.上面的是將.轉義,讓它是本身的意思。括號重複的區間最少一次,最多兩次。

    6.後面接下com|cn|org|gov.cn|net|edu.cn等就可以了

因此,我們的正規表達顯示在我使用:

/\w+@([a-zA-Z0-9-]+.){1,2}(com|cn|org|gov.cn|net|edu.cn)/

信箱的正規就被我寫成功了。

常用正規函數

我們常用的正規函數有:

函數名功能
preg_filter執行一個正規表示式搜尋並取代
preg_grep傳回符合模式的陣列項目
#preg_match執行一個正規表示式符合
#preg_match_all執行一個全域正規表示式匹配
preg_replace_callback_array傳入數組,執行一個正規表示式搜尋和替換使用回調
preg_replace_callback執行一個正規表示式搜尋並且使用一個回呼進行替換
preg_replace執行一個正規表示式的搜尋和取代
preg_split透過一個正規表示式分隔字串

大家針對這這些函數,對著手冊用一下。有問題或遇到問題可以來我們的官網提問。

正規關於面試常遇到的問題

#面試中經常考到的幾個正規達達示是:

    1.匹配郵箱

    2.匹配手機號

    3.匹配一個網址

    4.用正則匹配某個格式,取出某個例

    5寫一個採集器
    其他....

面試的第4題和第5題我對大家不擔心,因為只要大家認真學習了我給的前五節的內容。第4,5題推理就行。

因為,通常在技術答案面試環節,是時候準許查手機的!

常用正規表示示

下面的是快速查找的正規表示示,大家一定得知道具體意思。
需要的時候直接複製即可:

繼續學習
||
<?php $pattern = '/(\w+)@(\w+).(com|org)/'; $str = "bob@example.com"; preg_match($pattern, $str, $match); print_r($match); ?>