正則詳細教程系列可以看此鏈接的文章哦
https://www.cnblogs.com/poloyy/category/1796055.html
分組和編號
- ( ) 在正則中可以用於分組
- 被括號起來的部分是子表達式,當做一個分組
- 場景類比:小學算術,括號表示單獨計算里面的內容 (1+1)*2
分組和編號的規則
第幾個括號就是第幾個分組
舉栗子

(\d{4}-\d{2}-\d{2})(\d{2}:\d{2}:\d{2})
這個表達式由兩個子表達式組成,第一個分組是日期,第二個分組是時間
不保存分組
- 默認在 ( ) 里面的表達式會保存成分組,但有些情況下,只想用括號將某些部分看成一個整體,臨時使用,后續不再用
- 可以通過 ?: 不保存分組, (?:正則表達式)
不保存分組的好處
- 正則表達式中出現了括號,那么這個子表達式在后續可能會再次被引用
- 不保存分組可以提高正則的性能
- 分組變少了,在分組計數時也更不容易出錯。
不保存分組的理解
那到底啥是不保存分組呢?可以理解成,括號只用於歸組,把某些表達式當做一個單獨的整體,不分配編號,后面不會再進行這部分的引用

保存分組的栗子


678 是分組一
不保存分組的栗子

678 並不是分組,無法引用
括號嵌套
括號嵌套 (( )) 這種情況肯定會出現,就好像小學算術 ((1+1)+(1+1)) 一樣
直接看栗子,然后就知道括號嵌套情況下,分組編號的規則是什么了

看右邊的 Group 1 - 8
分組編號

分組引用
知道分組編號后,我們會需要引用分組
引用規則
反斜扛 + 編號: \number
不同編程語言,有不同的引用方式

有印象即可,用到再來查一查~
分組引用在查找中使用
找到重復的單詞

分組引用在替換中使用
可以通過分組引用替換文本內容

擴展
在 Python 中,sub 函數可用於正則的替換

