快速開始
教學
工具和語言
範例
參考
書籍評論
正規表示式教學
簡介
目錄
特殊字元
不可列印字元
正規表示式引擎內部
字元類別
字元類別減法
字元類別交集
簡寫字元類別
錨定
字詞邊界
交替
可選項目
重複
群組和擷取
後向參照
後向參照,第 2 部分
命名群組
相對後向參照
分支重設群組
自由間距和註解
Unicode
模式修改器
原子群組
獨佔量詞
前瞻和後顧
環顧,第 2 部分
將文字排除在比對之外
條件
平衡群組
遞迴
子常式
無限遞迴
遞迴和量詞
遞迴和擷取
遞迴和後向參照
遞迴和回溯
POSIX 方括號表示式
零長度比對
繼續比對
本網站的其他內容
簡介
正規表示式快速入門
正規表示式教學
替換字串教學
應用程式和語言
正規表示式範例
正規表示式參考
替換字串參考
書籍評論
可列印 PDF
關於本網站
RSS 資訊和部落格
RegexBuddy—Better than a regular expression tutorial!

相對後向參照

某些應用程式支援相對反向參照。這些應用程式使用負數來參照反向參照之前的群組。若要找出相對反向參照所參照的群組,請取反向參照的絕對數字,並從反向參照開始,從右至左計算 (已命名或未命名) 擷取群組的開啟括號數量。因此,(a)(b)(c)\k<-1> 符合 abcc,而 (a)(b)(c)\k<-3> 符合 abca。如果反向參照位於擷取群組內,則您也需要計算該擷取群組的開啟括號。因此,(a)(b)(c\k<-2>) 符合 abcb(a)(b)(c\k<-1>) 無法符合或會產生錯誤,視您的應用程式是否允許 巢狀反向參照 而定。

巢狀反向參照的語法差異很大。它通常是 已命名反向參照 語法的延伸。JGsoft V2Ruby 1.9 及更新版本支援 \k<-1>\k'-1'。雖然這看起來像是 .NET 已命名擷取的語法,但 .NET 本身不支援相對反向參照。

Perl 5.10、PCRE 7.0、PHP 5.2.2 和 R 支援 \g{-1}\g-1

Boost 從 Boost 1.42 開始支援 Perl 語法。Boost 從 Boost 1.47 開始新增 Ruby 語法。為了讓事情更複雜,Boost 1.47 允許這些變體相乘。Boost 1.47 及更新版本允許使用 \g\k 以及大括號、尖括號或引號來指定相對反向參照。這產生六種變體,加上 \g-1,總共有七種變體。這讓 Boost 與 Ruby、PCRE、PHP、R 和 JGsoft 產生衝突,後者將使用尖括號或引號的 \g 和負數視為 相對子常式呼叫