好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP中基于perl的正則表達式處理函數

PHP中基于perl的正則表達式處理函數

熱門標簽:線上教育ai外呼系統 css百度地圖標注位置顯示 宿遷智能外呼系統供應商 地圖標注商戶中心要收錢多少 地圖標注字母的軟件 400免費電話去哪申請 實用地圖標注app 鄂州人工智能電銷機器人軟件 菏澤智能ai電銷機器人銷售公司

前面我們已經學習了正則表達式的基礎語法,包括了定界符、原子、元字符和模式修正 符。實際上正則表達式想要起作用的話,就必須借用正則表達式處理函數。本節我們就來介紹一下PHP中基于perl的正則表達式處理函數,主要包含了分割, 匹配,查找,替換等等處理操作,依舊是配合示例講解,讓我們開始吧。

和正則表達式一樣,正則表達式處理函數不能夠獨立使用,而這必須相結合,才能夠完成特定的功能。在前面我們也說過,基于perl的正則表達式要快于POXIS正則表達式處理函數,所以我們只介紹以preg開頭的基于perl的正則表達式。注意:在能偶使用字符串函數處理的時候,就不要使用正則表達式來處理字符串,因為字符串處理函數更快。

下面我們來看一些常用的正則表達式處理函數。

1,preg_match()函數。

函數preg_match()執行一個正則表達式匹配,其定義如下:

int preg_match ( string $pattern , string $subject [, array $matches [, int $flags = 0 [, int $offset = 0 ]]] ) 

實際上就是搜索subject中匹配pattern的部分, 以保存在數組matches中.請看示例:

?php  
 
   $pattern = '/b>.*?\/b>/';  
   $string = 'b>welcome/b> b>to/b> b>phpfuns/b>dsadsadas';  
   if (preg_match($pattern, $string, $arr)) {  
     echo "正則表達式b>{$pattern}/b>和字符串b>{$string}/b>匹配成功br>";  
     print_r($arr);  
   } else {  
     echo "font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗/font>";  
   }  
 ?> 

2,preg_match_all()函數。

函數preg_match_all()函數執行一個全局正則表達式匹配,其定義和preg_match()函數一致,只不過匹配了全部結果。請看示例:

?php  
   $pattern = '/b>.*?\/b>/';  
   $string = 'b>welcome/b> b>to/b> b>phpfuns/b>dsadsadas';  
   if (preg_match_all($pattern, $string, $arr)) {  
     echo "正則表達式b>{$pattern}/b>和字符串b>{$string}/b>匹配成功br>";  
     print_r($arr);  
   } else {  
     echo "font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗/font>";  
   }  
 ?> 

依舊是上面的示例(只換了正則處理函數為preg_match_all()),但是匹配的結果數組內容不一樣了。

3, preg_replace()函數

函數preg_replace()執行一個正則表達式替換,其定義如下:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int $count ]] )

實際上就是搜索subject中匹配pattern的部分, 以replacement進行替換.其中limit指的是每個模式在每個subject上進行替換的最大次數. 默認是 -1(無限). 如果指定count,將會被填充為完成的替換次數.

注意:

A,如果subject是一個數組, preg_replace()返回一個數組, 其他情況下返回一個字符串.

B,如果匹配被查找到, 替換后的subject被返回, 其他情況下返回沒有改變的subject. 如果發生錯誤, 返回NULL .

C,子模式可以應用到參數replacement中,使用方式為\n或者${n}。(在正則表達式的模式中我們只能使用\n的形式來獲取已經匹配的子模式,切記!)

D,如果使用模式修正符e,則參數replacement中可以解析函數。(在其它的正則表達式處理函數中,模式修正符e均被忽略!)

請看下面的綜合示例:

?php  
  $pattern = '/(php)|(mysql)/e';  
  $string = '這個字符串中的php和mysql被替換成大寫的了!';  
  $result = preg_replace($pattern, 'strtoupper("${1}\2")', $string, -1, $count);  
  echo $result.'br>';  
  echo $count;  
?> 

上例中,我們使用了模式修正符e,這樣的話strtoupper()函數就可以當作字符串被解析,這就是模式修正符e的作用!而參數${1}和\2分別是子模式1和子模式2。上例的作用就是將字符串$string中匹配到的子模式php和mysql替換成大寫字母!

4,preg_split()函數。

preg_split執行一個正則表達式分隔字符串。其定義如下:

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

實際上就是將subject按照pattern分割,返回分割后的數組。其中,limit將限制分隔得到的子串最多只有limit個, 返回的最后一個子串將包含所有剩余部分.limit值為-1, 0或null時都代表"不限制"。

我們來看一個示例:

?php  
   $pattern = '/p>(.*?)\/p>/';  
   $string = '這個字符串中的p>php/p>和p>mysql/p>被分割了!';  
   $result = preg_split($pattern, $string, -1, PREG_SPLIT_DELIM_CAPTURE);  
   print_r($result);  
 ?> 


上例中,我們使用了常量PREG_SPLIT_DELIM_CAPTURE設 置返回結果中包含子模式(如果設置為PREG_SPLIT_NO_EMPTY,preg_split()將進返回分隔后的非空部分。)我們如果把上例中正 則表達式的括號去掉,則結果中不再包含php和mysql這兩個匹配成功的子模式。

常用的正則表達式處理函數我們就介紹完了,本節的例子可能會難一些,但希望大家還是認真的試驗并體會一下,后面的正則表達式應用部分,我們會經常使用正則表達式處理函數。

以上內容是小編給大家介紹PHP中基于perl的正則表達式處理函數,希望對大家有所幫助。

您可能感興趣的文章:
  • PHP中PCRE正則解析代碼詳解
  • PHP 正則表達式常用函數使用小結
  • PHP函數preg_match_all正則表達式的基本使用詳細解析
  • PHP正則表達式基本函數 修飾符 元字符和需轉義字符說明
  • PHP 正則表達式常用函數
  • PHP 正則表達式之正則處理函數小結(preg_match,preg_match_all,preg_replace,preg_split)
  • PHP中的正則表達式函數介紹
  • PHP中一些可以替代正則表達式函數的字符串操作函數
  • PHP preg match正則表達式函數的操作實例
  • PHP正則表達式處理函數(PCRE 函數)實例小結

標簽:綿陽 三亞 六安 池州 梅州 恩施 咸陽 鞍山

巨人網絡通訊聲明:本文標題《PHP中基于perl的正則表達式處理函數》,本文關鍵詞  PHP,中,基于,perl,的,正則,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP中基于perl的正則表達式處理函數》相關的同類信息!
  • 本頁收集關于PHP中基于perl的正則表達式處理函數的相關信息資訊供網民參考!
  • 推薦文章