麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

正則表達式、分組、子匹配(子模式)、非捕獲子匹配(子模式)

2020-03-16 20:58:46
字體:
供稿:網(wǎng)友

前面我們知道正則表達式有很多元字符表示匹配次數(shù)(量詞),都是可以重復匹配前面出現(xiàn)的單個字符次數(shù)。有時候,我們可能需要匹配一組多個字符一起出現(xiàn)的次數(shù)。這個時候,我們需要分組了。就是用小括號來括起這些字符,指定子表達式(也叫做分組)。然后你就可以指定這個子表達式的重復次數(shù)了,你也可以對子表達式進行其它一些操作。這個時候,可以把括號中一組字符,看作一個整體了。

分組模式舉例說明

如:查找字符串中,連續(xù)出現(xiàn)多個win字符串的字符。可以這樣完

<?php $str = "this is win winwindows!";preg_match_all("/(win)+/",$str,$marr);var_dump($marr);

正則表達式,分組,子匹配

不用分組模式,同時匹配多個字符,可以嗎? 我們發(fā)現(xiàn)以前操作符號:[win]+,盡管可以匹配到winwin字符,因為它代表是有w,i,n組合的一個或者多個字符,不會限制順序。所見它會匹配到象:wwin,www,inw等等,只要是這3個字符組成的,多個字符都匹配成功了。

上面怎么匹配到,每一個有2個結果呢?這就是子模式(子匹配),默認除了可以將多個字符組合一個整體,另外還會把括號,括起來的這部分表達式存儲到一個臨時緩沖區(qū)中,以便后面正則表達式調(diào)用。上面這個例子里面,我們不需要,后期調(diào)用的。因此,怎么樣屏蔽掉這個子表達式捕獲內(nèi)容呢? 只需要在:前加上”?:” 即可。我們看看下面例子正則表達式 分組非捕獲模式。

正則表達式,分組,子匹配

非捕獲模式優(yōu)點有哪些呢? 從上面看,可以減少捕獲,也就會減少匹配次數(shù)。因此,在不必要分組表達式加入非捕獲前綴”?:”,可以節(jié)省內(nèi)存開銷,并且可以提升匹配速度!

剛剛說到了正則表達式分組,默認情況會將子表達式捕獲內(nèi)容,存儲到一個緩存區(qū)。以便后續(xù)調(diào)用。 那這個是什么樣情況呢?其實,這個是正則表達式的引用。所捕獲的每個子匹配都按照在正則表達式模式中從左至右所遇到的內(nèi)容按順序存儲。存儲子匹配的緩沖區(qū)編號從1開始,最多可以一般存儲為9。以便后面表達式引用該值,又叫后向引用。

我們看下下面例子,查找一個字符串中,互不相鄰,出現(xiàn)多次系統(tǒng)單詞:add。

<?php$str = "add123456addasdf"; preg_match_all('/(add)/d+/1/',$str,$marr); var_dump($marr);

正則表達式,分組,子匹配

反向引用,常用來處理一些處理一些特殊匹配情況。如:查找字符串中,不相鄰重復字符串。查找html一對標簽中內(nèi)容。特別分析html非常常見了(注意,如果使用了反向引用,前面不能屏蔽子匹配捕獲,也就是不能加”?:"前綴了)。經(jīng)常會用:

<?php$str = file_get_contents('http://blog.chacuo.net/');preg_match_all('/<(/S+)[^>]*>[^<]*<///1>/',$str,$marr); var_dump($marr); // (/S+) 表示非顯示字符之外所有字符,一般作為html tag名稱// tag格式一般為 <tag  其它屬性> 后面[^>]* 匹配tag里面所有其它屬性// 后面的[^<]* 表示 <tag...>中間內(nèi)容</tag> 表示中間內(nèi)容,到"<"結束,因此匹配所有[^<]* 字符// 最后的<///1> "//" 轉(zhuǎn)義"/"字符,后面的"/1" 表示反向應用前面的(/S+)

正則表達式,分組,子匹配

以上是正則表達式使用比較重要的,分組,反向匹配,以及非捕獲分組說明及實例。希望對要屬性改功能朋友有所幫助。同時歡迎朋友們交流!


注:相關教程知識閱讀請移步到正則表達式頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲一区在线免费视频 | 久久91久久久久麻豆精品 | 精品久久久久久久久久久αⅴ | 毛片大全在线观看 | 羞羞视频免费入口网站 | 精品三区视频 | 免费视频99| 55夜色66夜色国产精品视频 | 日本精品久久久一区二区三区 | 九九热视频在线免费观看 | 黄色羞羞视频在线观看 | 97香蕉超级碰碰久久免费软件 | 黄污网址 | 中文字幕在线播放不卡 | 蜜桃av鲁一鲁一鲁一鲁 | 偿还电影免费看 | 自拍偷拍亚洲图片 | 免费黄色小视频网站 | 国产精品久久久久久久久久久久久久久 | 神马福利网 | 免费国产一区二区视频 | 欧美中文字幕一区二区 | 国产高潮好爽受不了了夜色 | 国产一区二区在线观看视频 | 99精品视频在线免费观看 | 欧美黑大粗硬毛片视频 | 国产精品成人免费一区久久羞羞 | 圆产精品久久久久久久久久久 | 久久第四色 | 中国大陆一级毛片 | 免费观看一区 | 中文在线观看www | 欧美 日韩 国产 在线 | 国产一区二区视频在线播放 | 国产精品久久久久久久不卡 | av国产免费 | 成人午夜小视频 | 中文国产在线视频 | 亚洲欧美国产高清 | 一级免费黄视频 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 |