PHP正則表示式

語言: CN / TW / HK

點選進入“PHP開源社群”    

免費獲取進階面試、文件、影片資源

1.介紹

PHP支援兩種風格的正則表示式語法:POSIX 和 Perl

這兩種表示式是編譯PHP時指定的預設風格,但在PHP5.3之後,POSIX 風格被棄用。

2.常用的正則匹配工具

線上匹配工具

3.基礎知識介紹

正則表示式是一種描述文字所包含模式的方法。

在 PHP 中,匹配正則表示式更像strstr()函式匹配,而不像相等比較,因為是在一個字串的某個位置如果不指明則可能在字串中的任何位置匹配另一個字串。

例:字串shop匹配正則表示式shop,它也可以匹配正則表示式h、ho等正則表示式。

除了精確匹配字元外,還可以用特殊字元來指定表示式的元意義 meta-meaning

說這麼多基礎理念小編自己看著也煩,接下來就讓直接進入正題吧!

4.基本字元介紹

  • 分隔符 /

    每個表示式必須包含在一対分隔符中,字串的開始和結束都必須要有匹配的分隔符

    例:編寫一個匹配 shop 的正則表示式 :  /shop/

  • 模式選擇 | (選擇分支的開始(讀為或))

    例: /com|edu|net/ 匹配  comedu 或  net 字串

  • 模式修飾符 i

    使用模式修飾符 將以不區分大小寫的方式匹配字串

    例:不區分大小寫的方式匹配 shop 的正則表示式  /shop/i

  • 方括號字元 []
    例如:  /[a-z]at/ 表示限定第一個字元必須是 a-z 之間的字元。

  • 脫字元號 ^
    脫字元號 ^ 用於正則表示式的開始,表示子字串必須出現在被搜尋字串的開始處;當脫字元號 ^ 在方括號裡面時,表示否;在下面兩張表中會具體介紹例子

5.在PCRE正則表示式中,用於方括號外面的特殊字元

6.在PCRE正則表示式中,用於方括號裡面的特殊字元

7.用於PCRE風格正則表示式的字元類

8.PCRE正則表示式的特殊字元型別

9.回溯引用

回溯引用( backreference

,也叫反向引用),非PHP程式設計師一般會放棄學習和使用,我也快放棄了(哭唧唧)。

{% note success no-icon %}

模式的回溯引用是通過一個反斜槓加一個數字(根據上下文不同,也可能多個數字)

它用來匹配多次出現在一個字串中的相同子表示式,而不用指定要具體匹配的內容{% endnote %}
例:/1是表示第一個子模式回撥引用;

/2則是第二個子模式回撥引用

10.在郵箱驗證中應用

驗證郵箱正則表示式: /^[a-zA-Z0-9_\-.][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]*[\.a-zA-Z0-9]{2,6}+$/

子表示式 /^[a-zA-Z0-9_\-.]+

表示“至少由一個或多個字母、數字、下劃線、連字元、點號組成並且作為整個字串開始的字串”。 請注意,當“.”用在一個字元類的開始或結束處時,它將失去其特殊萬用字元的意義,只能成為一個點號字元。

符號

@ 匹配字元“@”。

子表示式 [a-zA-Z0-9\-]+ 與由字母、數字字元和連字元組成的主機名相匹配。請注意,在這裡,我們去除了連字元,因為它是方括號內的特殊字元。
字元組合 \. 匹配“.”字元。我們在字元類 外部 使用點號,因此必須對其轉義,使其能夠匹配一個點號字元。

子表示式 [a-zA-Z0-9\-] 匹配域名剩餘部分,它包含字母、數字和連字元。
子表示式 *[\.a-zA-Z0-9]{2,6}+$/ 匹配域名剩餘部分,它包含字母、數字和連字元。最後的子表示式最多隻能存在2-6個字元,或者不存在

如圖

好了,說了這麼多,是不是還是一頭霧水,雖然說多寫多看多用就會了,但是小編還是不太會,只能看懂,稍微會寫一點而已哈哈哈哈哈~~~~~

*宣告:本文於網路整理,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

END

PHP開源社群

掃描關注  進入”PHP資料“

免費獲取進階

面試、文件、影片資源

點選“檢視原文”獲取更多