后向引用

后向引用:在后面的表達式中,引用前面某個分組所匹配到的內(nèi)容

在解釋之前需要先了解一下分組編號,在正則表達式中,每個分組都會對應(yīng)一個編號,以分組的左括號為標(biāo)志第一個為1 ,第二個為2依次類推


d1eeaaaaa526f7113fd4dac916070f2.png

\b(\w+)\b\s+\1\b可以用來匹配重復(fù)的單詞,像go go, 或者kitty kitty。這個表達式首先是一個單詞,也就是單詞開始處和結(jié)束處之間的多于一個的字母或數(shù)字(\b(\w+)\b),這個單詞會被捕獲到編號為1的分組中,然后是1個或幾個空白符(\s+),最后是分組1中捕獲的內(nèi)容(也就是前面匹配的那個單詞)(\1)。

你也可以自己指定子表達式的組名。要指定一個子表達式的組名,請使用這樣的語法:(?<Word>\w+)(或者把尖括號換成'也行:(?'Word'\w+)),這樣就把\w+的組名指定為Word了。要反向引用這個分組捕獲的內(nèi)容,你可以使用\k<Word>,所以上一個例子也可以寫成這樣:\b(?<Word>\w+)\b\s+\k<Word>\b。

我的理解是對于分配組號的分組,匹配到數(shù)據(jù)后會將匹配到的內(nèi)容和組號暫存起來,比如在例子中,(\w+) 的分組編號為1,當(dāng)帶匹配的字符串為go go 的時候會首先匹配到go 這個單詞,此時會將這個單詞和組號關(guān)聯(lián)暫存,當(dāng)后面用\1時會先去查找和組號1關(guān)聯(lián)的已匹配到的單詞go 然后代入正則表達式進行匹配

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 以下引用內(nèi)容均來自這里 (?=exp)## 斷言自身出現(xiàn)的位置的后面能匹配表達式exp。例如\w+(?=ing),...
    kamionayuki閱讀 1,166評論 0 0
  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位,可能是字母,數(shù)字,標(biāo)點符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,287評論 0 9
  • http://www.jb51.net/tools/zhengze.html 正則表達式30分鐘入門教程 版本:v...
    nullleaf閱讀 662評論 0 2
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請諒解!??! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達式是什么,并對它...
    阿杰Alex閱讀 1,563評論 0 10
  • 轉(zhuǎn)載自正則表達式30分鐘入門教程 入門 學(xué)習(xí)正則表達式的最好方法是從例子開始,理解例子之后再自己對例子進行修改,實...
    夏天的風(fēng)_song閱讀 1,965評論 0 0

友情鏈接更多精彩內(nèi)容