正規表示式

2021-08-15 04:52:54 字數 2189 閱讀 4043

一、定界符

「/」或「#」

二、元字元

1)+ : 一次或多次

比如:/php+/,能夠與「phpp」匹配,即字母ph後面連續出現乙個或多個字母p的字串相匹配。

2)* : 零次或多次,貪婪的,盡可能多的匹配文字

比如:/php*/能夠與「phpddt」相匹配,即ph後面可以有0個或多個p

3)? : 零次或一次,消除貪婪

比如:/php?/能夠「pher」匹配,即phh後面可以有0個或者1個p

4) \s   : 單個空格符,包括tab鍵和換行符  [ \f\n\r\t\v]

5) \s  :  除單個空格符之外的所有字元  [ ^\f\n\r\t\v]

6) \d  :  從0到9的數字   [0-9]

7) \d :  非數字    [^0-9]

7) \w :  字母、數字、下劃線  [a-za-z0-9_]

8) \w :  所有與\w不匹配的字元 [^a-za-z0-9_]

9).  :  除換行符\n之外的 

10)\r : 單個回車符

示例:/\s+/用於匹配乙個或多個空格字元

示例:

$str = '';

preg_match_all('/<.*>/',$str,$matches);

結果:,盡可能多的匹配字元

$str = '';

preg_match_all('/<.*?>/',$str,$matches);

結果:,盡可能少的匹配

三、定位符,匹配模式在目標物件中的位置

1)「^」  開頭

2)「$」  結尾

3)\b   開頭或結尾的兩個邊界之一

4)「\b」  開頭和結尾兩個邊界之內

5)()子表示式

6)

四、修飾符,改變表示式的行為

」i」就是修飾符,表示忽略大小寫

另外」x」表示忽略空格

/m  多行模式

/s   單行模式

五、範圍

/[a-z]/

上述正規表示式將會與從a到z範圍內任何乙個大寫字母相匹配。

/[a-z]/

上述正規表示式將會與從a到z範圍內任何乙個小寫字母相匹配。

/[0-9]/

上述正規表示式將會與從0到9範圍內任何乙個數字相匹配。

/([a-z][a-z][0-9])+/

上述正規表示式將會與任何由字母和數字組成的字串

」」只能匹配單個字元    如[a-d],代表a或b或c或d

[^1-5],該字元不是1~5之間的數字

[-+.]\w包含任意- 或+ 或.或\w字元的組合出現0次或多次

六、限定符

如[\w]或者[\w]*或者[\w]+這些[\w]後面的符號都表示限定符。

表示3到5個字元。超過3個字元,最多5個,三個字元。

* 表示0到多個

+ 表示1到多個

七、萬用字元(lookarounds):斷言某些字串中某些字元的存在與否!

lookarounds分兩種:lookaheads(正向預查 ?=)和lookbehinds(反向預查?<=)。

> 格式:

正向預查:(?=) 相對應的 (?!)表示否定意思

反向預查:(?<=) 相對應的 (?八、同時與多種模式匹配

如/phpddt|100/可以與「phpddt」 「100」相匹配

九、需要轉義的字元有:

\ . * ^ & [ ] ? 等

十、練習

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

非負整數 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正規表示式 編寫正規表示式

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