PHP正則表達式的修飾符

i(PCRE_CASELESS)  函數

若是設置了這個修飾符,則表達式不區分大小寫.  spa

 

m(PCRE_MULTILINE)  字符串

默認的,PCRE認爲目標字符串值是單行字符串(即便他確實包含多行).行開始標記(^)只匹配字符串的開始部分,而行結束標記($)只匹配字符串的尾部,或者一個結束行(除非指定E修飾符).這個和Perl裏面同樣.   若是設定了這個修飾符,行開始和行結束結構分別匹配在目標字符串任何新行的當前位置後面的或者之前的,和每個開始和結束同樣.這個等於Perl裏面的/m修飾符.若是目標字符串沒有"n"字符,或者模式裏沒有^或$,這個修飾符不起做用.  it

 

s(PCRE_DOTALL)  class

若是設置這個修飾符,模式裏的一個"點"將匹配全部字符,包括換行.沒有他,換行將被排除在外.這個修飾符等同於Perl裏面的/s修飾符.一個相反的類型,例如[^a>將老是匹配換行字符,而無論這個修飾符的限制.  搜索

 

x(PCRE_EXTENDED)  im

若是設置這個修飾符,模式裏面的空格數句將會被所有忽略,除非用轉義符或者一個字符的內部類型,還有全部字符類型外的未轉義的#號之間的也被忽略.這個等同於Perl裏面的/x   修飾符,這樣能夠複雜的模式裏面加入註釋.注意,只適用於數據字符.空格字符將不會在指定的模式字符指定順序中出現。  數據

 

e  margin

若是設置這個修飾符,preg_replace()將在替換值裏進行正常的涉及到的替換,等同於在PHP代碼裏面同樣,而後用於替換搜索到的字符串.   只在preg_replace()裏使用這個修飾符;其它PCRE函數忽略他.  top

 

A(PCRE_ANCHORED)  

若是設置這個修飾符,模式被強制爲錨(anchored),也就是說,他將值匹配搜索字符串的開始.這個效果能夠經過恰當的模式結構自身來實現,那是在Perl裏面的惟一途徑.  

 

D(PCRE_DOLLAR_ENDONLY)  

若是設置這個修飾符,則模式裏的$修飾符將僅匹配目標字符串裏的尾部.沒有這個修飾符,$字符也匹配新行的尾部(可是再也不新行的前面).若是設置了m修飾符則忽略這個修飾符.在Perl裏面沒有相似的.  

 

S  

若是一個模式將被使用屢次,使用長些時間分析他來來提升匹配的速度.若是使用這個修飾符,則進行額外的分析.目前,研究模式僅用於非錨模式,沒有一個固定的開始字符.  

 

U(PCRE_UNGREEDY)  

這個修飾符翻轉數量的"greediness",使得默認不被greedy,可是若是你緊跟問號(?),則能夠greedy.這個和Perl不兼容.這個也能夠經過在模式裏面的(?U)修飾符獲得.  

 

X(PCRE_EXTRA)  

這個修飾符打開額外的功能,這些和Perl不兼容.任何模式裏面的後面帶字符但沒有特殊意義的反斜槓將引發錯誤,從而儲備這些聯合用於未來的擴充.默認的,在Perl裏面,   反斜槓後面有無心義的字符被當成正常的literal.目前尚未其餘的控制特徵 

相關文章
相關標籤/搜索