最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中基于perl的正則表達(dá)式處理函數(shù)

 更新時間:2015年10月28日 15:49:00   投稿:mrr  
和正則表達(dá)式一樣,正則表達(dá)式處理函數(shù)不能夠獨(dú)立使用,而這必須相結(jié)合,才能夠完成特定的功能。我們只介紹以preg開頭的基于perl的正則表達(dá)式。

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

和正則表達(dá)式一樣,正則表達(dá)式處理函數(shù)不能夠獨(dú)立使用,而這必須相結(jié)合,才能夠完成特定的功能。在前面我們也說過,基于perl的正則表達(dá)式要快于POXIS正則表達(dá)式處理函數(shù),所以我們只介紹以preg開頭的基于perl的正則表達(dá)式。注意:在能偶使用字符串函數(shù)處理的時候,就不要使用正則表達(dá)式來處理字符串,因?yàn)樽址幚砗瘮?shù)更快。

下面我們來看一些常用的正則表達(dá)式處理函數(shù)。

1,preg_match()函數(shù)。

函數(shù)preg_match()執(zhí)行一個正則表達(dá)式匹配,其定義如下:

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

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

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

2,preg_match_all()函數(shù)。

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

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

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

3, preg_replace()函數(shù)

函數(shù)preg_replace()執(zhí)行一個正則表達(dá)式替換,其定義如下:

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

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

注意:

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

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

C,子模式可以應(yīng)用到參數(shù)replacement中,使用方式為\n或者${n}。(在正則表達(dá)式的模式中我們只能使用\n的形式來獲取已經(jīng)匹配的子模式,切記?。?/p>

D,如果使用模式修正符e,則參數(shù)replacement中可以解析函數(shù)。(在其它的正則表達(dá)式處理函數(shù)中,模式修正符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()函數(shù)就可以當(dāng)作字符串被解析,這就是模式修正符e的作用!而參數(shù)${1}和\2分別是子模式1和子模式2。上例的作用就是將字符串$string中匹配到的子模式php和mysql替換成大寫字母!

4,preg_split()函數(shù)。

preg_split執(zhí)行一個正則表達(dá)式分隔字符串。其定義如下:

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

實(shí)際上就是將subject按照pattern分割,返回分割后的數(shù)組。其中,limit將限制分隔得到的子串最多只有l(wèi)imit個, 返回的最后一個子串將包含所有剩余部分.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設(shè) 置返回結(jié)果中包含子模式(如果設(shè)置為PREG_SPLIT_NO_EMPTY,preg_split()將進(jìn)返回分隔后的非空部分。)我們?nèi)绻焉侠姓?則表達(dá)式的括號去掉,則結(jié)果中不再包含php和mysql這兩個匹配成功的子模式。

常用的正則表達(dá)式處理函數(shù)我們就介紹完了,本節(jié)的例子可能會難一些,但希望大家還是認(rèn)真的試驗(yàn)并體會一下,后面的正則表達(dá)式應(yīng)用部分,我們會經(jīng)常使用正則表達(dá)式處理函數(shù)。

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

相關(guān)文章

  • 利用js給DropdownList賦值實(shí)例

    利用js給DropdownList賦值實(shí)例

    本文主要分享了利用js給DropdownList賦值的實(shí)例,代碼清晰,圖文并茂,有利于理解與掌握,需要的朋友可以看下
    2016-12-12
  • 使用JavaScript正則表達(dá)式如何去掉雙引號

    使用JavaScript正則表達(dá)式如何去掉雙引號

    本文給大家介紹使用javascript正則表達(dá)式過濾雙引號,代碼非常簡單,具有參考借鑒價值,對js 正則表達(dá)式 雙引號相關(guān)知識感興趣的朋友快來看看吧
    2015-10-10
  • 正則表達(dá)式

    正則表達(dá)式

    正則表達(dá)式...
    2007-03-03
  • PHP 正則的使用基礎(chǔ)入門

    PHP 正則的使用基礎(chǔ)入門

    正則表達(dá)式,作為一種快速、便捷的處理字符串的工具,在各種編程語言中都有著廣泛的用途,通過在PHP中的一些使用,下面記錄一下關(guān)于PHP中正則使用的一些技巧。
    2009-10-10
  • Regex正則表達(dá)式判斷密碼強(qiáng)度

    Regex正則表達(dá)式判斷密碼強(qiáng)度

    這里用到Regex表達(dá)式,雖然還是經(jīng)常使用,但是對其語法還是一知半解。主要一般用到都比較簡單,不需要多重判斷,這篇文章主要介紹了Regex正則表達(dá)式判斷密碼強(qiáng)度,需要的朋友可以參考下
    2023-02-02
  • 只能輸入正整數(shù)的正則表達(dá)式及常用的正則表達(dá)式

    只能輸入正整數(shù)的正則表達(dá)式及常用的正則表達(dá)式

    這篇文章主要介紹了只能輸入正整數(shù)的正則表達(dá)式以及常用的正則表達(dá)式,需要的朋友可以參考下
    2018-09-09
  • RegExp對象的方法和屬性

    RegExp對象的方法和屬性

    RegExp對先看整個字符串是不是匹配,如果沒有發(fā)現(xiàn)匹配,先去掉最后字符串中的最后一個字符,并再次嘗試,如果還沒有發(fā)現(xiàn)匹配,那么再次去掉最后一個字符,這個過程會一直重復(fù)下去直到發(fā)現(xiàn)匹配或不剩任何字符串,上面的簡單量詞都是貪婪量詞。
    2008-06-06
  • 半小時精通正則表達(dá)式-精華版

    半小時精通正則表達(dá)式-精華版

    這篇文章主要介紹了半小時精通正則表達(dá)式-精華版,需要的朋友可以參考下
    2015-12-12
  • 用正則查找html中有id屬性的html標(biāo)簽

    用正則查找html中有id屬性的html標(biāo)簽

    查找html中有id屬性的標(biāo)簽,說具體點(diǎn)就是尖括號中還有id=""的html標(biāo)簽
    2012-10-10
  • PHP 正則表達(dá)式常用函數(shù)使用小結(jié)

    PHP 正則表達(dá)式常用函數(shù)使用小結(jié)

    學(xué)習(xí)php正則的朋友不得不了解的一些函數(shù),大家看了下面的文章就知道了php下正則表達(dá)式的調(diào)用方法。
    2009-09-09

最新評論

彝良县| 会东县| 台北县| 盱眙县| 赤壁市| 安乡县| 偃师市| 乳山市| 太和县| 南陵县| 新绛县| 浦东新区| 松溪县| 永定县| 澳门| 定州市| 定襄县| 子洲县| 安塞县| 乐平市| 搜索| 治县。| 滨海县| 永登县| 西宁市| 麻江县| 磐石市| 华蓥市| 抚顺市| 德格县| 甘谷县| 巩义市| 青海省| 罗田县| 弋阳县| 芜湖市| 祁东县| 礼泉县| 宁河县| 黑龙江省| 易门县|