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

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:02:13
字體:
來源:轉載
供稿:網友

和正則表達式一樣,正則表達式處理函數不能夠獨立使用,而這必須相結合,才能夠完成特定的功能。我們只介紹以preg開頭的基于perl的正則表達式。

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

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

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

1,preg_match()函數。

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

 

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

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

 

  1. <?php  
  2.  
  3. $pattern = '/<b>.*?<//b>/';  
  4. $string = '<b>welcome</b> <b>to</b> <b>phpfuns</b>dsadsadas';  
  5. if (preg_match($pattern, $string, $arr)) {  
  6. echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>";  
  7. print_r($arr);  
  8. else {  
  9. echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>";  
  10. }  
  11. ?> 

2,preg_match_all()函數。

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

 

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

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

3, preg_replace()函數

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

 

 
  1. 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均被忽略!)

請看下面的綜合示例:

 

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

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

4,preg_split()函數。

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

 

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

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

我們來看一個示例:

 

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲缚视频在线观看| 成人免费大片黄在线播放| 国产成人综合久久| 亚洲黄色片网站| 久久久久久久国产| 日韩成人免费视频| 日韩av在线一区| 亚洲欧洲在线看| 亚洲精品福利资源站| 亚洲精品之草原avav久久| 大伊人狠狠躁夜夜躁av一区| 热久久美女精品天天吊色| 69av视频在线播放| 欧美性猛交xxxxx水多| 啊v视频在线一区二区三区| 91国产精品视频在线| 在线精品高清中文字幕| 精品久久久久久久久久久久久| 色琪琪综合男人的天堂aⅴ视频| 欧美激情精品久久久久久大尺度| 欧美日韩激情小视频| 不卡毛片在线看| 亚洲第一视频网站| 欧美一级在线亚洲天堂| 国产中文字幕亚洲| 中文字幕亚洲欧美日韩高清| 国产精品h在线观看| 91欧美精品成人综合在线观看| 91国内产香蕉| 日韩av色综合| 久久久91精品国产| x99av成人免费| 日韩电影第一页| 欧美日韩国产中文精品字幕自在自线| 欧美日韩美女在线| 在线观看亚洲区| 日韩在线观看免费全| 在线观看日韩视频| 欧美激情一级欧美精品| 懂色aⅴ精品一区二区三区蜜月| 国产精品久久久久久久久久| 亚洲电影免费在线观看| 日韩在线一区二区三区免费视频| 亚洲欧美国内爽妇网| 91禁外国网站| 国产色视频一区| 国产精品视频永久免费播放| 欧美电影免费观看大全| 亚洲电影免费观看高清完整版| 国产精品看片资源| 国产噜噜噜噜久久久久久久久| 精品日韩美女的视频高清| 亚洲第一精品夜夜躁人人爽| 97视频com| 97在线视频免费| 亚洲天堂av女优| 亚洲欧洲av一区二区| 91久久夜色精品国产网站| 97视频在线观看成人| 国产日韩欧美在线看| 九九热这里只有精品6| 国产91在线高潮白浆在线观看| 国产91在线高潮白浆在线观看| 国产精品大片wwwwww| 中文字幕亚洲欧美在线| 国产一区私人高清影院| 日韩精品久久久久久久玫瑰园| 日韩免费观看av| 91亚洲精品在线观看| 亚洲欧美国产另类| 午夜美女久久久久爽久久| 成人激情视频小说免费下载| 国产亚洲精品久久久久动| 91久久嫩草影院一区二区| 日韩精品在线观看网站| 色婷婷综合久久久久中文字幕1| 在线观看国产精品淫| 国产成人精品最新| 欧美极品少妇xxxxx| 欧美精品一区在线播放| 欧美大肥婆大肥bbbbb| 性欧美办公室18xxxxhd| 亚洲成色777777女色窝| 国产成人av网| 亚洲乱码国产乱码精品精| 国产欧美在线观看| 国产一区二区免费| 日韩av有码在线| 九九热在线精品视频| 日韩视频在线免费观看| 国产精品aaaa| 亚洲2020天天堂在线观看| 欧美在线视频一二三| 亚洲天堂视频在线观看| 黄色精品在线看| 日韩精品极品视频免费观看| 亚洲一区二区三区sesese| 亚洲精品电影网在线观看| 国产欧美在线播放| 韩剧1988免费观看全集| 色综合久久中文字幕综合网小说| 欧美在线一区二区视频| 欧美激情精品久久久久久免费印度| 国产盗摄xxxx视频xxx69| 亚洲日本成人女熟在线观看| 久久免费视频在线观看| 国产精品成人av性教育| 国产日韩在线视频| 久久人人爽人人爽人人片亚洲| 欧美在线观看一区二区三区| 丝袜情趣国产精品| 久久久噜噜噜久噜久久| 亚洲国产精品999| 尤物九九久久国产精品的特点| 亚洲偷熟乱区亚洲香蕉av| 欧美在线亚洲在线| 亚洲福利视频在线| 亚洲欧美在线免费观看| 国产精品入口夜色视频大尺度| 久久综合88中文色鬼| 国产午夜精品一区理论片飘花| 欧美日韩性视频在线| 欧美午夜宅男影院在线观看| 久久国产精品首页| 2019中文字幕在线| 亚洲精品美女久久久久| 日韩一区二区精品视频| 91成人在线播放| 91av成人在线| 国模叶桐国产精品一区| 国产日韩欧美在线播放| 久久精品色欧美aⅴ一区二区| 欧美精品在线免费播放| 97香蕉超级碰碰久久免费的优势| 国产精品a久久久久久| 欧美国产第一页| 自拍偷拍免费精品| 亚洲激情在线视频| 日韩国产欧美精品在线| 日韩av最新在线观看| 国产欧美婷婷中文| 国产精品久久久久久久久影视| 国产精品女视频| 一色桃子一区二区| 国产999精品| 欧美精品在线免费| 日韩av理论片| 亚洲最大激情中文字幕| 日韩欧美国产中文字幕| 久久韩剧网电视剧| 26uuu亚洲国产精品| 国产精品久久久久高潮| 亚洲精品二三区| 一区二区三区亚洲| 久久偷看各类女兵18女厕嘘嘘| 一区二区国产精品视频| 91精品国产自产在线老师啪| 欧美在线日韩在线| 国产视频在线观看一区二区| 亚洲第一天堂av| 97视频在线观看网址| 亚洲国产福利在线| 欧美在线视频a| 欧美性xxxx在线播放|