java正則反向引用
backreference:反向引用.與捕獲組匹配的輸入字串結果儲存在記憶體中,以便以後通過反向引用進行呼叫。用\+數字
,表示要引用的group(數字)。
普通捕獲組反向引用:\k,通常簡寫為\number
命名捕獲組反向引用:\k或者\k’name’
https://www.cnblogs.com/-ShiL/archive/2012/04/06/Star201204061009.html
源表示式:1212
正規表示式:((\d)\d)\1
匹配結果:1212
解析:首先((\d)\d),匹配了12,那麼記憶體儲存鍵為1,值為12的索引。然後\1,拿出來進行匹配,即1212.同理如果源表示式是1234,由於34和原本的不一致,所以不匹配。
源表示式:1212
正規表示式:((\d)\d)\2
匹配結果:121
解析:首先((\d)\d),匹配了12,那麼記憶體儲存鍵為2,值為1的索引。然後\2,拿出來進行匹配,即121.
上面說的鍵值的索引只是我個人的猜測,具體儲存方式我並不太清楚,但是一定會有相關的儲存而且應該是同時存了可能引用的索引。我猜測應該是陣列的可能性大點。
帶著上面的想法我又驗證了一下
源表示式:121121
正規表示式:((\d)\d)\2\1
匹配結果:12112
解析:首先((\d)\d),匹配了12,那麼記憶體儲存鍵為1,值為12的索引,儲存鍵為2,值為1的索引。然後\2,拿出來進行匹配,即121.再拿出\1進行匹配,即12112
源表示式:121121
正規表示式:((\d)\d)\2\2
匹配結果:1211
解析:首先((\d)\d),匹配了12,那麼記憶體儲存鍵為1,值為12的索引,儲存鍵為2,值為1的索引。然後\2,拿出來進行匹配,即121.再拿出\2進行匹配,即1211
相關文章
- AS3 js正規表示式 反向引用(backreference)S3JS
- 正規表示式中的捕獲和反向引用筆記筆記
- Java處理正則匹配卡死(正則回溯問題)Java
- shell正則匹配捕獲引用進行IP匹配
- python反向引用是什麼?Python
- java中url正則regex匹配Java
- js表情正則 手機正則 郵箱正則JS
- Java : 常用重點正則標記Java
- 推薦兩個還不錯的正則反向生成匹配字串的包字串
- 正則
- Java的強引用、軟引用、弱引用、虛引用Java
- 正則re
- 正則化
- Javascript正則JavaScript
- py 正則
- 正則_9
- 正則?=用法
- 正則 ?= 用法
- 「python」正則Python
- 正則匹配規則2
- 正則表達選擇分組向後引用及捕獲和非捕獲分組(五)(1000則)
- Java四種引用包括強引用,軟引用,弱引用,虛引用。Java
- Logstash之Grok正則匹配,讓正則進階!
- Java使用正則獲取字串中匹配欄位Java字串
- 理解Java的強引用、軟引用、弱引用和虛引用Java
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid
- 正則匹配規則記錄
- Java四大引用詳解:強引用、軟引用、弱引用、虛引用Java
- java的強引用、軟引用、弱引用、幻象引用,引用佇列總結Java佇列
- 正則請教
- 正則雜談
- 正則-元字元字元
- Python正則部分Python
- javascript 常用正則JavaScript
- 正則筆記筆記
- Java常見知識點彙總(⑲)——Java中的強引用、弱引用、軟引用、虛引用Java
- Java引用型別解析:掌握強引用、軟引用、弱引用和幻象引用的妙用Java型別
- Shell階段09 shell正則,grep正則, sed使用及案例