PHP正則匹配函數之間的區別介紹

        本文介紹PHP常用正則匹配函數之間的區別,主要有str_replace、str_ireplace、substr_replace、 preg_replace、preg_match、preg_match_all、preg_quote、preg_split、 ereg_replace、eregi_replace、preg_replace、str_split,當然其中有幾個不能使用正則表達式,但因為跟相關正則函數關系曖昧所以都放到一起比較一下,方便參考。

名稱 支持正則 特點 備註
str_replace X 字符串替換函數,大小寫敏感  
str_ireplace X 字符串替換函數,大小寫不敏感,支持數組式批量替換 感謝網友franci,提醒添加
substr_replace X 部分替換字符串函數,可以指定位置index  
       
preg_replace Y 指定匹配模式進行替換,支持子串引用 優先使用
ereg_replace Y 指定匹配模式進行替換,大小寫敏感,支持子串引用  
eregi_replace Y 指定匹配模式進行替換,大小寫不敏感,支持子串引用  
       
ereg Y 指定模式全文匹配,可以用來匹配判斷,或返回匹配數組  
preg_match Y 指定模式匹配一次退出,可以用來是否匹配判斷,或使用返回的匹配數組 優先使用
preg_match_all Y 指定模式全文匹配,一般用來使用返回的匹配數組 優先使用
       
preg_split Y 指定匹配模式下正則剖分,如果能用最好還是使用explode或str_split  
str_split X 指定長度剖分字符串,默認單個字符剖分成數組  
explode X 可以指定單個或多個字符剖分字符串,成功則返回數組,例如12345按照34剖分則返回12和5  
       
preg_quote 轉義正則表達式字符,意思就是為特殊字符加上反斜線,正則表達式的特殊字符包括:. * ? [ ^ ] $ ( ) { } = ! < > | : –  
     

補充說明:
1、在PHP中有兩套正則表達式函數庫,功能非常相似:
一套是POSIX(Portable Operating System Interface of Unix )庫提供的,函數以ereg_前綴命名,POSIX正則函數庫目前已經不再推薦使用。

一套是PCRE(Perl Compatible Regular Expression)庫提供的,函數以preg_前綴命名,推薦大傢優先使用。在PCRE中,通常將模式表達式(即正則表達式)包含在兩個反斜線“/”之間,如“/^w $/”樣式。

2、PHP正則表達式作用:匹配提取、匹配替換

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *