欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

正則 捕獲組(capture group)

 更新時間:2023年05月28日 11:00:44   投稿:mdxy-dxy  
捕獲組就是把正則表達式中子表達式匹配的內(nèi)容,保存到內(nèi)存中以數(shù)字編號或手動命名的組里,方便后面引用

捕獲組有兩種形式

一種是普通的捕獲組,不產(chǎn)生歧義的情況下,后面簡稱捕獲組,語法規(guī)則:(expression);

另一種是命名捕獲組,語法規(guī)則:(?<name>expression)或者(?'name'expression),這兩種寫法是等價的。

1、編號規(guī)則

如果沒有顯式為捕獲組命名,即沒有使用命名捕獲組,那么需要按數(shù)字順序來訪問所有捕獲組

在只有普通捕獲組的情況下,捕獲組的編號是按照“(”出現(xiàn)的順序,從左到右編號的 

(\d{4})-(\d{2}-(\d\d))

1        1 2          3    3 2

上面的正則表達式可以用來匹配格式為yyyy-MM-dd的日期,為了在下表中得以區(qū)分,采用了\d{2}和\d\d兩種寫法

還有一個默認編號為0的組,表示的是正則表達式的整體

用以上正則表達式匹配字符串:2008-12-31

匹配結(jié)果為:

編號命名捕獲組匹配內(nèi)容
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

如果對組進行了顯式命名,即命名捕獲組,那么捕獲的內(nèi)容可以通過組名稱來引用

但是如果正則表達式中既使用了普通捕獲組,也使用了命名捕獲組,那么捕獲組的編號就要特別注意,編號的規(guī)則是先對普通捕獲組進行編號,再對命名捕獲組進行編號

(\d{4})-(?<date>\d{2}-(\d\d))

1        1 3                       2     23

用以上正則表達式匹配字符串:2008-12-31

匹配結(jié)果為:

編號命名捕獲組匹配內(nèi)容
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) 正則表達式中,對前面捕獲組捕獲的內(nèi)容進行引用,稱為反向引用

b) 正則表達式中,(?(表達式)true|false)的條件表達式

c) 在程序中,對捕獲組捕獲內(nèi)容的引用

反向引用

對于普通捕獲組的引用,語法規(guī)則為:\k<num>,通常簡寫為\num,其中num是十進制的數(shù)字,即捕獲組的編號

對于命名捕獲組的引用,語法規(guī)則為:\k<name>或者\k'name'

相關(guān)文章

  • Java正則表達式入門學習

    Java正則表達式入門學習

    這篇文章主要介紹了Java正則表達式入門學習基礎(chǔ)知識,全面分析了表示匹配次數(shù)的符號使用方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 用正則表達式表示不包含2950的字符串

    用正則表達式表示不包含2950的字符串

    或者說有一條命令 hostname [string],當string是不包含2950時,是true,包含2950時是false。
    2009-09-09
  • 正則表達式匹配括號外的符號及數(shù)據(jù)

    正則表達式匹配括號外的符號及數(shù)據(jù)

    這篇文章主要介紹了正則表達式匹配括號外的符號及數(shù)據(jù),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 一個正則表達式的看法(?:)

    一個正則表達式的看法(?:)

    下午和kindle聊天的時候,他讓我看一個正則,問我知不知道其中?:的作用,以偶半瓶水的正則功力,不知道雜解釋給他聽了,單個一個還好理解,一起就不明白了,起碼我是沒用過..查了下資料,說說我的看法..
    2010-12-12
  • 一文搞懂正則表達式基礎(chǔ)語法以及如何應(yīng)用

    一文搞懂正則表達式基礎(chǔ)語法以及如何應(yīng)用

    正則表達式是一種描述字符串結(jié)構(gòu)的語法規(guī)則,是用于匹配字符串中字符組合的模式,同時正則表達式也是對象,下面這篇文章主要給大家介紹了關(guān)于如何通過一文搞懂正則表達式基礎(chǔ)語法以及如何應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • JS正則表達式驗證數(shù)字(非常全)

    JS正則表達式驗證數(shù)字(非常全)

    正則表達式,又稱規(guī)則表達式,在項目中經(jīng)常會用到正則表達式,今天小編抽空給大家分享js正則表達式驗證數(shù)字的方法,感興趣的朋友參考下吧
    2016-12-12
  • UBB代碼在論壇中的應(yīng)用

    UBB代碼在論壇中的應(yīng)用

    UBB代碼在論壇中的應(yīng)用...
    2006-07-07
  • js正則學習小記之匹配字符串字面量

    js正則學習小記之匹配字符串字面量

    關(guān)于匹配字符串問題,有很多種類型,今天討論 js 代碼里的字符串匹配,因為我想學完之后寫個語法高亮練手,所以用js代碼當作例子
    2020-04-04
  • 去除段首段尾的 和全角的空格的正則

    去除段首段尾的 和全角的空格的正則

    去除段首段尾的 &nbsp;和全角的空格的正則,代碼看起來不如之前的版本,簡單,需要更了解正則的特殊字符。
    2009-08-08
  • 編程語言中十六進制的正則匹配

    編程語言中十六進制的正則匹配

    十六進制是計算機中數(shù)據(jù)的一種表示方法。同我們?nèi)粘V械氖M制表示法不一樣
    2012-10-10

最新評論