PHP正則表達式函數解析與正則表達式基本語法

1、PHP正則表達式函數解析

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

preg_match();preg_match_all();表單驗證等php

//email地址的合法性-preg_match(),匹配結果能夠看做是bool值html

preg_replace();非法詞的過濾正則表達式

//f**kexpress

2、正則表達式基本語法

clipboard.png

clipboard.png

clipboard.png

測試正則表達式的工具ide

clipboard.png

clipboard.png

中午匹配最好轉成unicode:Unicode轉換工具函數

clipboard.png
注意:[^是必須在一塊兒的,不然以下:^也被當成一個原子去匹配。工具

分枝是指制定幾個規則,若是知足任意一種規則,則都看成匹配成功。具體來講就是用 | 符號把各類規則分開,且條件從左至右匹配。
提示
因爲分枝規定,只要匹配成功,就再也不對後面的條件加以匹配,因此若是你想匹配有包含關係的內容,請注意規則的順序。 下面是一個使用分枝的例子。測試

美國的郵政編碼的規則是 5 個數字或者 5 個數字連上 4 個數字,如 12345 或者 54321-1234 ,若是要匹配全部的郵編,則正確的正則表達式爲:
\d{5}-\d{4}|\d{5}
//錯誤寫法
\d{5}|\d{5}-\d{4}
下面的錯誤寫法,只能匹配到 5 位數字及 9 位數字的前 5 位數字的狀況,而不能匹配 9 位數字的郵編。

clipboard.png

clipboard.png

.等價於[^\n]編碼

clipboard.png

{n} 表示匹配其前面的原子剛好筆記出現n次的 如:5{3} 至關於 555 {n,}
表示匹配其前面的原子最少出現n次的如:[a-zA-Z]{5,}至少連續出現5次的字母如wertt;
{n,m}表示其前面的原子最少出現5次,最多出現m次 如:w{5,9}
* 匹配0次, 1次或者屢次其以前的原子 即{0,} 如w*
+ 匹配1次或屢次其以前的原子 {1,} d+
?匹配0次或1次其以前的原子 {0,1} _?uspa

clipboard.png

clipboard.png

第3、修正模式

clipboard.png

clipboard.png

多種可能結果中最短的那個,默認是貪婪模式,既多種可能性中最長的那個

clipboard.png

clipboard.png

clipboard.png

x:忽略空格和tab製表符空白格

4、實戰-常見正則表達式

clipboard.png

  1. 非空匹配:.+

  2. 浮點數:\d+\.\d{2}$

  3. 手機號:^1(3|5)d{9}$

  4. 郵箱:^\w+(\.\w+)*@\w+(\.\w+)+$

  5. URl:^(https?:\/\/)?(\w+\.)+[a-zA-Z]+$

  6. 僅匹配3~15個漢字和大小寫字母:^([\x{4e00}-\x{9fa5}]|[a-zA-Z]){3,15}$/u

(/u表示按unicode(utf-8)匹配(主要針對多字節好比漢字),/U纔是懶惰匹配哦)

正則表達式的/要轉義,不轉義是匹配不到的
模式單元(3|5|7|8)等同於[3578]
注意:(3|5) 等同於[35]而不是[3|5]哦!!

PHP 經常使用正則表達式整理

相關文章
相關標籤/搜索