正規表示式

2021-08-02 10:26:16 字數 2897 閱讀 3649

return 匹配到結果的次數

引數:$pattern 正規表示式

$subject 匹配物件

$matches 匹配到的結果

區別:preg_replace()會保留所有匹配物件的資料

preg_filter()只保留發生替換的資料

匹配包含$pattern的字串  

preg_grep($pattern,array

$input) 閹割版的preg_filter()

preg_split($pattern,$subject)
$tr = 'jiadef[joiade]';

echo preg_quote($tr);

結果:jiadef\[joiade\]\

都以preg_開頭

除preg_quote函式外,第乙個引數都是正規表示式

preg_match--

表單驗證等

preg_replace--

非法詞語過濾等

界定符

表示乙個正規表示式的開始和結束

/[0-9]/

regexpal工具

原子 * 可見原子

unicode 編碼表中用鍵盤輸出後肉眼可見的字元
unicode 編碼表中用鍵盤輸出後肉眼不可見的字元

換行符 \n

回車 \r

製表符 \t

空格其他不可見符號

注意:1.文字匹配建議轉化成unicode編碼再匹配

2.正規表示式運算子需要轉義才能匹配

元字元

* 原子的篩選方式

| 匹配兩個或多個分支選擇

匹配方括號中的任意乙個原子

[^] 匹配除方括號中的原子之外的任意字元

元字元之原子的集合

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

\d 匹配任意乙個十進位制數字,即 [0-9]

\d 匹配任意乙個非十進位制數字,[^0-9]

\s 匹配乙個不可見原子 [

\f\n

\r\t\v]

\s 匹配乙個可見原子 [^\f

\n\r

\t\v

]\w 匹配任意乙個數字、字母或下劃線 [0-9a-za-z_]

\w 匹配任意乙個非數字、字母或下劃線 [^0-9a-za-z_]

量詞

表示其前面的原子恰好出現n次

表示其前面的原子最少出現n次

表示前前面的原子最少出現n次,最多出現m次

* 匹配0次、1次或者多次其之前的原子,即

+ 匹配1次或者多次其之前的原子

? 匹配0次或者1次其之前的原子,即

邊界控制和模式單元

^匹配字串開始的位置

$ 匹配字串結尾的位置

() -模式單元 匹配其中的整體為乙個原子

貪婪匹配和懶惰匹配

貪婪匹配--

匹配結果存在歧義時取其長

懶惰匹配--

匹配結果存在歧義時取其短/[

0-9]

/u

常見修正模式

u - 懶惰匹配 u 貪婪匹配(預設)

i - 忽略英文本母大小寫

x - 忽略正規表示式中的空白和換行

s - 讓元字元 `.

`匹配包括換行符在內所有字元

e -

常用正規表示式

非空  .+  可用於表單驗證 不能為空

浮點數匹配 \d+\.

\d$ 常用於貨幣的匹配

手機號匹配 1(3|4|5|7|8)\d

email 位址匹配 \w+(\.

\w+)\$

\w+(\.

\w+)+$

url位址匹配:^(https?://)?(\w+\.)+[a-za-z]+$

php 正規表示式(pcre)

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...