php 正規表示式用法和常用案例

2021-06-29 10:27:25 字數 2615 閱讀 1987

. 匹配除換行符意外的任意字元

\w 匹配字母或數字或下劃線

\s 匹配任意的空白符

\d 匹配數字

\b 匹配單詞的開始或結束

^ 匹配字串的開始

$ 匹配字串的結束

[x] 匹配x字元,如匹配字串中的 a、b 和 c 字元

\w \w的反義,即匹配任意非字母,數字,下劃線和漢字的字元

\s \s的反義,即匹配任意非空白符的字元

\d \d的反義,即匹配任意非數字的字元

\b \b的反義,即不是單詞開頭或結束的位置

[^x] 匹配除了 x 意外的任意字元,如 [^abc] 匹配除了 abc 這幾個字母之外的任意字元

提示當我們要匹配這些元字元的時候,我們需要用到字元轉義功能,同樣正規表示式裡面用 \ 來表示轉義,如要匹配 . 符號,則需要用 \. ,否則 . 會被解釋成「除換行符外的任意字元」。當然,要匹配 \ ,則需要寫成 \\

連續的數字或字母可以用 – 符號連線起來,如 匹配所有的小寫字母,[1-5] 匹配 1 至 5 這 5 個數字

重複正規表示式的威力在於其能夠在模式中包含選擇和迴圈,正規表示式用一些重複規則來表達迴圈匹配。

常用的重複如下:

重複 說明

* 重複零次或更多次

+ 重複 1 次或更多次

? 重複零次或 1 次

重複 n 次

重複 n 次或更多次

重複 n 到 m 次

正規表示式替換 preg_replace 函式

preg_ split() 函式用於正規表示式分割字串。

驗證電子郵件的格式是否正確 ?

答:function checkemail($email)

([\.][a-z])?/i";

return preg_match($pregemail,$email);   

} qq號碼為數字且至少5位^\d$

匹配移動號碼的正規表示式為:^1\d$

正則匹配中文漢字

gbk/gb2312編碼:[x80-xff>]+ 或 [xa1-xff]+

utf-8編碼:[x-x]+/u

表單驗證匹配

驗證賬號,字母開頭,允許 5-16 位元組,允許字母數字下劃線:^[a-za-z][a-za-z0-9_]$

驗證賬號,不能為空,不能有空格,只能是英文本母:^\s+[a-z a-z]$

驗證賬號,不能有空格,不能非數字:^\d+$

驗證使用者密碼,以字母開頭,長度在 6-18 之間:^[a-za-z]\w$

驗證是否含有 ^%&',;=?$\ 等字元:[^%&',;=?$\x22]+

匹配日期,只能是 2004-10-22 格式:^\d\-\d-\d$

匹配國內**號碼:^\d-\d|\d-\d$

評注:匹配形式如 010-12345678 或 0571-12345678 或 0831-1234567

匹配身份證:\d(\d|(\d[xx])|\d)

評注:中國的身份證為 15 位或 18 位

不能為空且二十位元組以上:^[\s|\s]$

字元匹配

匹配由 26 個英文本母組成的字串:^[a-za-z]+$

匹配由 26 個大寫英文本母組成的字串:^[a-z]+$

匹配由 26 個小寫英文本母組成的字串:^[a-z]+$

匹配由數字和 26 個英文本母組成的字串:^[a-za-z0-9]+$

匹配由數字、26個英文本母或者下劃線組成的字串:^\w+$

匹配空行:\n[\s| ]*\r

匹配任何內容:[\s\s]*

匹配中文字元:[\x80-\xff]+ 或者 [\xa1-\xff]+

只能輸入漢字:^[\x80-\xff],$

匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

匹配數字

只能輸入數字:^[0-9]*$

只能輸入n位的數字:^\d$

只能輸入至少n位數字:^\d$

只能輸入m-n位的數字:^\d$

匹配正整數:^[1-9]\d*$

匹配負整數:^-[1-9]\d*$

匹配整數:^-?[1-9]\d*$

匹配非負整數(正整數 + 0):^[1-9]\d*|0$

匹配非正整數(負整數 + 0):^-[1-9]\d*|0$

匹配正浮點數:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

匹配負浮點數:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

匹配浮點數:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

匹配非負浮點數(正浮點數 + 0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

匹配非正浮點數(負浮點數 + 0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

其他匹配html標記的正規表示式(無法匹配巢狀標籤):<(\s*?)[^>]*>.*?|<.*? />

匹配完整網域名稱:[a-za-z0-9][-a-za-z0-9](\.[a-za-z0-9][-a-za-z0-9])+\.?

正規表示式的基本用法和常用案例

正規表示式的常用語法規則 任何字元 與行結束符可能匹配也可能不匹配 d 數字 0 9 d 非數字 0 9 s 空白字元 t n x0b f r s 非空白字元 s w 單詞字元 a za z 0 9 w 非單詞字元 w 反斜線字元 0n 帶有八進位制值 0 的字元 n 0 n 7 0nn 帶有八進位...

PHP 常用正規表示式

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

php常用正規表示式

匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 匹配空白行的正規表示式 n s r 評注 可以用來刪除空白行 匹配ht...