亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

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

2020-01-20 22:08:15
字體:
來源:轉載
供稿:網友

前面我們已經學習了正則表達式的基礎語法,包括了定界符、原子、元字符和模式修正 符。實際上正則表達式想要起作用的話,就必須借用正則表達式處理函數。本節我們就來介紹一下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的正則表達式處理函數,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久999精品免费| 亚洲第一天堂av| 在线观看亚洲区| 久久国产一区二区三区| 久久精品99国产精品酒店日本| 国产成人中文字幕| 欧美日韩一区二区免费在线观看| 57pao国产成人免费| 中文字幕av一区二区| 亚洲成年人影院在线| 亚洲香蕉伊综合在人在线视看| 一区二区欧美在线| 国产精品一二区| 国产一区二区在线免费| 91经典在线视频| 97久久精品在线| 精品无人区乱码1区2区3区在线| 精品久久久999| 亚洲国产成人精品久久久国产成人一区| 亚洲欧美日韩一区二区三区在线| 日韩免费av片在线观看| 欧美激情亚洲激情| 欧美日韩高清在线观看| 国产不卡精品视男人的天堂| 亚洲偷欧美偷国内偷| 亚洲欧洲视频在线| 2019日本中文字幕| 欧美日韩裸体免费视频| 亚洲区bt下载| 久久精品视频中文字幕| 国产免费一区二区三区香蕉精| 中文字幕日韩在线视频| 亚洲成人久久久久| 欧美又大又硬又粗bbbbb| 亚洲精品日韩欧美| 日韩在线欧美在线国产在线| 91精品国产网站| 亚洲人成在线免费观看| 亚洲伊人久久综合| 国产主播喷水一区二区| 色偷偷av一区二区三区乱| 久久国产精彩视频| 国产综合福利在线| 国产精品免费一区豆花| 国产成人精品一区二区在线| 伊人伊成久久人综合网小说| 精品亚洲国产视频| 在线观看视频99| 国产精品极品美女在线观看免费| 国产欧美在线视频| 日韩精品亚洲元码| 国产精品日韩专区| 中日韩美女免费视频网站在线观看| 青青a在线精品免费观看| 精品视频在线播放色网色视频| 精品国产一区二区三区久久狼5月| 一本色道久久88精品综合| 久久99亚洲精品| 欧美精品免费看| 中文字幕日韩av综合精品| 日韩成人在线视频观看| 91成人免费观看网站| 91在线观看欧美日韩| 日韩欧美亚洲国产一区| 欧美午夜影院在线视频| 九九热精品在线| 欧美不卡视频一区发布| 日韩中文在线中文网在线观看| 久久久女人电视剧免费播放下载| 狠狠爱在线视频一区| 国产亚洲欧洲高清| 欧美精品久久久久久久| 一个人www欧美| 国产伦精品免费视频| 日韩av在线一区二区| 中文字幕亚洲一区二区三区五十路| 国产欧美在线观看| 国产精品色悠悠| 中文字幕少妇一区二区三区| 青青草国产精品一区二区| 欧美午夜激情小视频| 国产亚洲精品成人av久久ww| 欧美激情久久久久久| 亚洲女成人图区| 亚洲成人激情在线观看| 日韩在线观看免费高清完整版| 77777亚洲午夜久久多人| 午夜精品一区二区三区av| 97**国产露脸精品国产| 国模极品一区二区三区| 日韩成人网免费视频| 亚洲自拍偷拍网址| 日韩av网站电影| 视频直播国产精品| 亚洲风情亚aⅴ在线发布| 国产精品久久久久久亚洲调教| 久久99青青精品免费观看| 国产成人拍精品视频午夜网站| 日韩乱码在线视频| 欧美日韩亚洲精品内裤| 午夜精品国产精品大乳美女| 欧美国产日韩一区二区三区| 精品视频www| 日韩视频―中文字幕| 91黑丝高跟在线| 国产成人精品综合| 国产精品久久久久久av福利| 91久久精品在线| 亚洲一区二区福利| 亚洲精品久久久久久久久久久久久| 久久人人爽国产| 日韩中文字幕在线播放| 91九色视频在线| 国产精品日韩久久久久| 欧美日韩综合视频网址| 97色伦亚洲国产| 国产精品一区久久| 亚洲毛片一区二区| 国产精品专区第二| 精品久久久久久久久中文字幕| 日韩久久免费视频| 欧美视频在线观看免费| 亚洲视屏在线播放| 在线免费观看羞羞视频一区二区| 一区二区三区天堂av| 欧美中文字幕第一页| 亚洲人成电影在线观看天堂色| 欧美猛男性生活免费| 91精品国产91| 国产一区二区三区视频在线观看| 欧美日韩国产成人在线| 成人h片在线播放免费网站| 精品夜色国产国偷在线| 亚洲国产精品专区久久| 欧美色视频日本高清在线观看| 国产精品都在这里| 亚洲www在线观看| 国语自产精品视频在线看抢先版图片| 国产日韩欧美夫妻视频在线观看| 5566成人精品视频免费| 按摩亚洲人久久| 久久久国产在线视频| 国产一区深夜福利| 亚洲男女自偷自拍图片另类| 国产精品高潮呻吟久久av野狼| 亚洲国产欧美一区二区丝袜黑人| 中文字幕日韩欧美| 国产精品一区二区久久| 欧美—级高清免费播放| 精品视频久久久| 亚洲片国产一区一级在线观看| 久99久在线视频| 国产精品手机播放| 国产精品久久久久久一区二区| 91视频免费在线| 亚洲最大的成人网| 精品国产福利视频| 免费97视频在线精品国自产拍| 国产在线久久久| 欧美视频在线视频| 日韩美女在线播放| 日韩在线观看免费网站| 亚洲国产高清自拍| 亚洲人成人99网站|