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

首頁 > 編程 > PHP > 正文

淺談PHP正則中的捕獲組與非捕獲組

2020-03-22 17:23:07
字體:
來源:轉載
供稿:網友
今天遇到一個正則匹配的問題,忽然翻到有捕獲組的概念,手冊上也是一略而過,百度時無意翻到C#和Java中有對正則捕獲組的特殊用法,搜索關鍵詞有PHP時竟然沒有相關內容,自己試了一下,發現在PHP中也是可行的,于是總結一下,分享的同時也希望有大神和細心的學習者找到我理解中出現的問題。什么是捕獲組我們先看一下PHP的正則匹配函數int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )前面兩項是我們常用的,$pattern是正則匹配模式,$string是要匹配的字符串。array&$match,它是一個數組,&表示匹配出來的結果會被寫入$match中。int $flags如果傳遞了這個標記,對于每一個出現的匹配返回時會附加字符串偏移量(相對于目標字符串的)。int $offset用于指定從目標字符串的某個未知開始搜索(單位是字節)。我們主要看一下$match的值里會有什么:$mode = '/a=(/d+)b=(/d+)c=(/d+)/';$str='**a=4b=98c=56**';$res=preg_match($mode,$str,$match);var_dump($match);結果如下:array (size=4)= string 'a=4b=98c=56' (length=11)= string '4' (length=1)= string '98' (length=2)= string '56' (length=2)現在我們知道了什么是捕獲組,捕獲組是正則表達示中以()括起來的部分,每一對()是一個捕獲組。PHP會為它編號,從1開始。至于為什么會從1開始,那是因為PHP把匹配到的完整字符串編號為0。如果有多個括號或嵌套括號,按左邊括號出現的順序來進行編號,如圖:按圖中的匹配模式匹配時,捕獲組的123號分別是紅綠藍。捕獲組的忽略與命名我們還可以阻止PHP為匹配組的編號:在匹配組中模式前加 :$mode = '/a=(/d+)b=( :/d+)c=(/d+)/';這樣,匹配結果就會變成:array (size=3)= string 'a=4b=98c=56' (length=11)= string '4' (length=1)= string '56' (length=2)當然,我們也可以在括號的內部為它給它獨特的名字。命名子組可以接受( name ), ( 'name') 以及( P name )語法. 之前版本僅接受( P name )語法.例如:$mode = '/a=(/d+)b=( P sec /d+)c=(/d+)/';使用時結果為:array (size=5)= string 'a=4b=98c=56' (length=11)= string '4' (length=1) 'sec' = string '98' (length=2)= string '98' (length=2)= string '56' (length=2)在保留索引數組的同時,加上一個關聯項,key值為捕獲組名。捕獲組的反向引用
我們在用preg_replace()函數進行正則替換時,我們還可以使用/n或$n來引用第n個捕獲組.$mode = '/a=(/d+)b=(/d+)c=(/d+)/';$str='**a=4b=98c=56**';$rp='/1/$2//3/';echo preg_replace($mode,$rp,$str);//**4/98/56/**/1表示捕獲組1(4),$2為捕獲組2(98),/3為捕獲組3(56)。非捕獲組的用法:為什么稱為非捕獲組呢?那是因為它們有捕獲組的特性,在匹配模式的()中,但是匹配時,PHP不會為它們編組,它們只會影響匹配結果,并不作為結果輸出。
/d( =xxx) 匹配"后面是xxx的一個數字"。注意格式:只能放在匹配模式字符串之后!例如:$pattern='//d( =abc)/';$str="ab36abc8eg";$res=preg_match($pattern,$str,$match);var_dump($match);//6匹配的6,因為只有它作為一個數字,后面還有abc。( =xxx)/d匹配"前面是xxx的一個數字"注意格式:只能放在匹配模式字符串之前!例如:$pattern='/( =abc)/d/';$str="ab36abc8eg";$res=preg_match($pattern,$str,$match);var_dump($match);//8匹配的8,因為只有它作為一個數字,后面還有abc。與( =xxx) ( =xxx)相對的是( !=xxx) ( !=xxx) 它們在=前加了非運算符 “!”它表示前面/后面不是xxx的字符串,這里就不再舉例了。以上這篇淺談PHP正則中的捕獲組與非捕獲組就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持phpstudy。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产亚洲视频| 日韩视频免费在线观看| 国内免费久久久久久久久久久| 欧美疯狂xxxx大交乱88av| 国产一区香蕉久久| 操日韩av在线电影| 亚洲国产一区二区三区四区| 亚洲热线99精品视频| 久久香蕉精品香蕉| 2019中文字幕免费视频| 亚洲天堂日韩电影| 欧美激情网站在线观看| 欧美日韩亚洲成人| 成人激情春色网| 91久久久久久久久久久久久| 久久精品国产一区| 亚洲欧洲国产伦综合| 欧美在线观看网址综合| 九九综合九九综合| 欧洲成人午夜免费大片| 亚洲毛片在线看| 亚洲mm色国产网站| 欧美在线一级视频| 国产亚洲xxx| 久久久欧美精品| 欧美黑人视频一区| 黑人巨大精品欧美一区二区一视频| 色悠久久久久综合先锋影音下载| 色七七影院综合| 国产精品视频大全| 日韩在线观看精品| 亚洲激情在线观看视频免费| 超碰精品一区二区三区乱码| 亚洲一区免费网站| 这里只有精品在线观看| 欧美日韩激情网| 国产成人综合精品在线| 国产69精品久久久久久| 91久久精品国产91久久性色| 美女国内精品自产拍在线播放| 精品国内亚洲在观看18黄| 91中文字幕在线观看| 国产婷婷色综合av蜜臀av| 97超碰国产精品女人人人爽| 日韩电影免费观看在线| 欧美日韩电影在线观看| 一区二区欧美日韩视频| 日韩精品极品视频免费观看| 国产精品久久婷婷六月丁香| 亚洲精品免费一区二区三区| 成人免费福利视频| 精品亚洲男同gayvideo网站| 国内精品400部情侣激情| 欧美成人亚洲成人| 热门国产精品亚洲第一区在线| 日韩小视频网址| 色悠久久久久综合先锋影音下载| 国产一区二区三区欧美| 国模叶桐国产精品一区| 精品香蕉一区二区三区| 亚洲第一在线视频| 亚洲xxxx3d| 国产精品免费电影| 国产成人avxxxxx在线看| 久久6免费高清热精品| 亚洲自拍偷拍在线| 2018中文字幕一区二区三区| 国产精品免费小视频| 欧美人与性动交a欧美精品| 亚洲人成免费电影| 国产精品手机播放| 欧美日韩在线视频一区| 欧美激情奇米色| 亚洲人成绝费网站色www| 色樱桃影院亚洲精品影院| 国产亚洲精品久久久久动| 成人激情综合网| 91沈先生作品| 免费91在线视频| 精品久久久久久久中文字幕| 国产精品最新在线观看| 国产精品成人一区二区三区吃奶| 最近免费中文字幕视频2019| 亚洲曰本av电影| 精品国产31久久久久久| 久久视频在线免费观看| 精品国产拍在线观看| 色综久久综合桃花网| 国产一区二区三区在线观看网站| 精品久久久久久中文字幕大豆网| 九九久久久久99精品| 亚洲欧美综合另类中字| 成人xxxxx| 欧美色xxxx| 亚洲欧美日本另类| 欧美一区二区三区四区在线| 国产性猛交xxxx免费看久久| 国产成人在线亚洲欧美| 国产精品欧美日韩| 久久精品成人动漫| 自拍偷拍亚洲欧美| 欧美猛男性生活免费| 国产欧美婷婷中文| 麻豆乱码国产一区二区三区| 91社影院在线观看| 久久久久久久香蕉网| 日韩在线观看高清| 久热精品视频在线观看一区| 97超级碰碰碰久久久| 91在线|亚洲| 色婷婷综合久久久久| 欧美小视频在线观看| 国产91ⅴ在线精品免费观看| 欧美激情视频一区| 97国产suv精品一区二区62| 欧美日韩精品国产| 亚洲午夜未删减在线观看| 国产精品爱久久久久久久| 亚洲丁香久久久| 国产精品高清免费在线观看| 亚洲激情小视频| 粗暴蹂躏中文一区二区三区| 亚洲一区中文字幕| 亚洲品质视频自拍网| 亚洲免费av网址| 久久九九国产精品怡红院| 91高清视频在线免费观看| 亚洲最新av网址| 永久免费精品影视网站| 亚洲人成人99网站| 91精品国产综合久久香蕉922| 黑人巨大精品欧美一区二区| 亚洲一区二区三区四区视频| 成人a在线观看| www.欧美免费| 亚洲电影天堂av| 中文字幕亚洲一区在线观看| 中日韩午夜理伦电影免费| 欧美日韩中文字幕在线| 亚洲一区亚洲二区亚洲三区| 欧美一区三区三区高中清蜜桃| 中文字幕日本精品| 国产精品永久免费视频| 国产999精品久久久影片官网| 成人午夜黄色影院| 91精品一区二区| 国产精品91视频| 欧美久久精品一级黑人c片| 久久99精品国产99久久6尤物| 日韩国产高清污视频在线观看| 欧美视频第一页| 欧美大片va欧美在线播放| 亚洲精品一区二区三区婷婷月| 亚洲欧美在线免费观看| 精品国产自在精品国产浪潮| 一本大道香蕉久在线播放29| 欧美日韩在线视频观看| 亚洲成年人在线播放| 色老头一区二区三区在线观看| 成人啪啪免费看| 九九热视频这里只有精品| 精品视频在线观看日韩| www.亚洲人.com| 亚洲精品国产综合久久|