PHP正則表示式
點選進入“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/
匹配com
、edu
或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資料“
免費獲取進階
面試、文件、影片資源
點選“檢視原文”獲取更多
- 你會使用 Linux 編輯器 Vim 嗎?
- php實現圖書管理系統詳細介紹
- 面試官問:Redis 快取都有哪些異常,各自有哪些解決方案
- 面試被問到:關於php檔案包含你瞭解多少?
- 一張小圖看盡 Nginx
- php快速搭建swoole玩轉協程
- Laravel 使用Guzzle執行HTTP請求
- PHP中的異常處理機制
- 基於redis的分散式鎖詳解
- 如何通過查原始碼的方式解決程式設計中遇到的問題?
- PHP高併發商品秒殺問題的解決方案
- Thinkphp6專案基本操作(中介軟體處理登入流程)
- PHP實現非同步延遲訊息佇列(庫存歸還)
- php捕捉Warning、Notice錯誤
- 利用PHP的POST臨時檔案機制實現任意檔案上傳
- php Carbon 時間處理類 超詳細講解(一)
- 如何用 10 行 bash shell 指令碼監控 Linux?
- PDO方式連線資料庫、PHP連線資料庫
- php雪花演算法SnowFlake生成唯一ID
- 淺述 Docker 的容器編排