首頁 >後端開發 >php教程 >PHP中正規表示式函數

PHP中正規表示式函數

小云云
小云云原創
2018-03-26 14:05:012847瀏覽

在PHP中有兩套正規表示式函數庫。一套是由PCRE(Perl Compatible Regular Expression)庫提供的,基於傳統型NFA。 PCRE函式庫使用和Perl相同的語法規則實現了正規表示式的模式匹配,其使用以“preg_”為前綴命名的函數。另一套是由POSIX(Portable Operation System interface)擴充庫提供的,基於POSIX NFA。 POSIX擴展的正規表示式由POSIX 1003.2定義,一般使用以「ereg_」為前綴命名的函數。

兩套函數庫的功能相似,執行效率稍有不同。一般而言,實現相同的功能,使用PCRE庫的效率略佔優勢。以下詳細介紹其使用方法。

正規表示式的符合

  1. preg_match()

    函數原型:int preg_match (string pattern,stringpattern,stringcontent [, array $mat])

    preg_mmatches (ches)

content  與pattern給出的正規表示式相符的內容。如果提供了matches,則將匹配結果放入其中。 matches,則將匹配結果放入其中。 matches[0]將包含與整個模式相符的文本,$matches[1]將包含第一個捕獲的與括號中的模式單元所匹配的內容,以此類推。此函數只 作一次匹配,最終傳回0或1的匹配結果數。

   2. ereg()和eregi()

    ereg()是POSIX擴充函式庫中正規表示式的符合函數。 eregi()是ereg()函數的忽略大小寫的版 本。二者與preg_match的功能類似,但函數傳回的是一個布林值,表示符合成功與否。需要說明的是,POSIX擴充庫函數的第一個參數接受的是正規 表達式字串,也就是不需要使用分界符。

     3. preg_grep()

  函數原型:array preg_grep (string pattern,arraypattern,arrayinput)

  preg_grep()函數傳回一個數組,其中包含了input數組中與給定的input數組中與給定的input數組中與給定的input數組中)給定的pattern模式相符的單元。對於輸入數組$input中的每個元素,preg_grep()也只進行一次匹配。程式碼6.3給出的範例簡單地說明了preg_grep()函數的使用。

進行全域正規表示式比對

  1. preg_match_all()

  與preg_match()函式類似。如果使用了第三個參數,將把所有可能的匹配結果放入。本函數傳回整個模 式符合的次數(可能為0),如果出錯則回傳False。   

  2.多行匹配

  僅使用POSIX下的正規表式函數,很難進行複雜的匹配操作。例如,對整個文件(尤其是多行文字)進行匹配查找。使用ereg()對此進行操作的一個方法是分行處理。

正規表示式的替換

   1. ereg_replace()與eregi_replace()  

  函數原型:string ereg_replace (string pattern,stringpattern,stringreplacement, string $string)## ##c pattern,stringpattern,stringreplacement, string $string)

  ereg_replace()在string中搜尋模式字串string中搜尋模式字串pattern,並將所匹配結果替換為replacement。當replacement。當pattern中包含模式單元(或子模式)時,replacement中形如“\1”或“replacement中形如“\1”或“1”的位置將依次被這些子模式所匹配的內容替換。而“\0”或“$0”是指整個的匹配字串的內容。的形式。 pattern,mixedpattern,mixedreplacement, mixed subject[,intsubject[,intlimit])

  preg_replace較ereg_replace的功能更加強大。次數,預設為全部替換。

正規表示式的分割

  1. split()和spliti()

  函數原型:array split (string pattern,stringpattern,stringstring [, int $limit])

  本函數傳回一個字串數組,每個單元為字串數組,每個單元為字串數組,每個單元為字串string經正規表示式string經正規表示式pattern作為邊界分割出的子字串。如 果實設定了limit,則傳回的陣列最多包含limit,則傳回的陣列最多包含limit個單元。而其中最後一個單元包含了$string中剩餘的所有部分。 spliti是split的 忽略大小版本。

  2. preg_split()

  本函數與split函式功能一致。 '

相關推薦:

PHP中常用正規表示式函數詳解

linux系統使用者管理與grep正規表示式詳解

PHP正規表示式分享

#

以上是PHP中正規表示式函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn