PHP學習筆記----正則表達式

正則表達式三句話

a.找什麼

b.從哪找

c.找幾個

①如果正則表達式不和函數一起使用,就純粹是一個字符串,只有和函數一起使用才發揮他真實的威力

②語法:

例:”/\<img\s*src=\”.*?\”\/\>/iu”

A.定界符號/ /(上例中的符號)

B.weixin接口 在哪 

除了字母、數字和正斜槓\以外的任何字符都可以爲定界符號

沒有特殊需要我們都是用正斜線爲正則表達式的定界符號

C.原子img \s

注意:原子是正則表達式的最基本的組成單位,而且必須至少要包含一個原子

  只要一個正則表達式可以獨立使用的字符,就是原子

  1.所有打印(所有可以在屏幕上輸出的字符串)和非打印字符(看不到的)

  2..*+?(<>如果所有有意義的字符,想作爲原子使用,通通使用“\”轉義字符轉義     “\”轉義字符可以將有意義的字符轉成沒意義的字符,還可以將沒意義的字符轉成有意義的字符

  3.在正則表達式中可以直接使用一些代表範圍的原子

\d   表示一個任意的十進制數字

\D   表示任意一個除數字之外的字符

\s    表示任意一個空白字符

\S   表示任意一個非空白字符

\w   表示任意一個字 a-z A-Z0-9

\W  表示任意一個非字 a-z A-Z0-9

4.自定義一個原子表[],可以匹配括號中的任何一個原子

[^]表示取反的意思,例如[^a-z]表示除a-z以外的數  

D.元字符 * ?

元字符是一種特殊的字符,是用來修飾原子用的,不可以單獨出現

*  表示其前的字符可以出現0次,1次或多次

+  表示其前的字符可以出現1次或多次

?  表示其前的原子可以出現0次或1

{} 用於定義前面原子出現的次數,{m} m表示一個整數,{5}表示前面的原子出現5次,{m,n}表示前面出現的原子最少出現m次,最多出現n次,{m,}表示前面的字符最少出現m

.  默認情況下,表示除換行符外任意一個字符

直接在一個正則表達式的第一個字符出現,則表達必須以這個正則表達式開始

直接在一個正則表達式的最後一個字符出現,則表達必須以這個正則表達式結束

|  表示或的關係,它的優先級號是最低的,最後考慮它的功能

()   A.作爲大原子使用

    B.還可以改變優先級

    C.還可以作爲子模式使用(以括號內的正則表達式所匹配到的結果放入其他數組元素中去)。有的時候你想用作改變優先級卻不想當作子模式來使用,這在(後加?:

    D.還可以在模式中把子模式取出來,再作爲正則表達式模式的一部分,遇到替換函數如prag_replace函數中,可以將子模式取出,在被替換的字符串中使用。如果想把子模式取出來可以用 \1 表示把第一個子模式取出來 需要注意的是看清楚是在單引號還是雙引號中使用,如果在雙引號中使用則需要再加一個\錶轉義

\b 表示一個邊界

\B 表示一個非邊界

E.模式修正符號i u

“//模式修正符

1.就是幾個字母

2.可以一次使用一個,每一個具有一定的意義,也可以連續使用多個

3.是對整個正則表達式調優使用,也可以說是對正則表達式功能的擴展

表示在和模式進行匹配時不區分大小寫

默認情況,將字符視爲一行 ^ $ 視爲多行後,任何一行都可以以正則開始或結束

如果沒有使用這個模式修正符號時,元字符中的“.”默認不能表示換行符號,將字符串視爲單行

表示模式中的空白忽略不計

正則表達式有個特點---貪婪,這個可以用來取消這個貪婪模式

注意:有的時候匹配到的正則表達式與輸出的不盡相同,那是因爲echo函數會把一部分轉義掉,此時在要輸出的內容兩頭加上<xmp>標籤就可以看到被轉義的字符了

 

 

 

PHP中與perl兼容的正則處理函數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章