a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > regex > 正文

正則 捕獲組(capture group)

2020-01-20 22:21:50
字體:
來源:轉載
供稿:網友
捕獲組有兩種形式
一種是普通的捕獲組,不產生歧義的情況下,后面簡稱捕獲組,語法規則:(expression);
另一種是命名捕獲組,語法規則:(?<name>expression)或者(?'name'expression),這兩種寫法是等價的。
 
1、編號規則
如果沒有顯式為捕獲組命名,即沒有使用命名捕獲組,那么需要按數字順序來訪問所有捕獲組
在只有普通捕獲組的情況下,捕獲組的編號是按照“(”出現的順序,從左到右編號的 
 
(/d{4})-(/d{2}-(/d/d))
1        1 2          3    3 2
 
上面的正則表達式可以用來匹配格式為yyyy-MM-dd的日期,為了在下表中得以區分,采用了/d{2}和/d/d兩種寫法
還有一個默認編號為0的組,表示的是正則表達式的整體
用以上正則表達式匹配字符串:2008-12-31
匹配結果為:
編號命名捕獲組匹配內容
0 (/d{4})-(/d{2}-(/d/d))2008-12-31
1 (/d{4})2008
2 (/d{2}-(/d/d))12-31
3 (/d/d)31
 
如果對組進行了顯式命名,即命名捕獲組,那么捕獲的內容可以通過組名稱來引用
但是如果正則表達式中既使用了普通捕獲組,也使用了命名捕獲組,那么捕獲組的編號就要特別注意,編號的規則是先對普通捕獲組進行編號,再對命名捕獲組進行編號
 
(/d{4})-(?<date>/d{2}-(/d/d))
1        1 3                       2     23
 
用以上正則表達式匹配字符串:2008-12-31
匹配結果為:
編號命名捕獲組匹配內容
0 (/d{4})-(/d{2}-(/d/d))2008-12-31
1 (/d{4})2008
2 (/d/d)31
3date(?<date>/d{2}-(/d/d))12-31
 
 
2、捕獲組的引用
對捕獲組的引用一般有以下幾種
a) 正則表達式中,對前面捕獲組捕獲的內容進行引用,稱為反向引用
b) 正則表達式中,(?(表達式)true|false)的條件表達式
c) 在程序中,對捕獲組捕獲內容的引用
 
反向引用
對于普通捕獲組的引用,語法規則為:/k<num>,通常簡寫為/num,其中num是十進制的數字,即捕獲組的編號
對于命名捕獲組的引用,語法規則為:/k<name>或者/k'name'
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美天堂在线 | 亚洲天堂久久 | 精品国产一区二区三区成人影院 | 亚洲一区成人在线观看 | 久久久久久久国产精品 | 2024男人天堂 | 国产一区二区在线免费观看 | 国产一级大片 | 久久国产成人午夜av影院宅 | 久久av一区二区三区 | 太平公主一级艳史播放高清 | 精品日韩在线 | 国产探花在线看 | 欧美高清hd | 久久久久久久久久久免费视频 | 日韩一区二区福利视频 | 久久成人综合网 | 久久精品99国产精品日本 | 激情五月婷婷 | 日韩中文在线观看 | 天天摸天天看 | 国产精品女教师av久久 | 国产成人精品在线观看 | 日韩高清一区二区 | 99re6在线| 91中文 | 91精品国产一区二区 | 一区二区三区在线 | 中文字幕在线视频免费观看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 一区二区三区精品 | 男人都懂的www网站免费观看 | 蜜桃av在线播放 | 久久综合社区 | 欧美一区二区三区免费在线观看 | 久久国产精品无码网站 | 国产免费一区二区三区最新不卡 | 一级欧美片| 久久午夜精品福利一区二区 | 国产一区二区三区高清 | 欧美日韩精品一区二区在线播放 |