本網站的其他內容 |
簡介 |
正規表示式快速入門 |
正規表示式教學 |
替換字串教學 |
應用程式和語言 |
正規表示式範例 |
正規表示式參考 |
替換字串參考 |
書籍評論 |
可列印 PDF |
關於本網站 |
RSS 資訊和部落格 |
某些應用程式支援相對反向參照。這些應用程式使用負數來參照反向參照之前的群組。若要找出相對反向參照所參照的群組,請取反向參照的絕對數字,並從反向參照開始,從右至左計算 (已命名或未命名) 擷取群組的開啟括號數量。因此,(a)(b)(c)\k<-1> 符合 abcc,而 (a)(b)(c)\k<-3> 符合 abca。如果反向參照位於擷取群組內,則您也需要計算該擷取群組的開啟括號。因此,(a)(b)(c\k<-2>) 符合 abcb。 (a)(b)(c\k<-1>) 無法符合或會產生錯誤,視您的應用程式是否允許 巢狀反向參照 而定。
巢狀反向參照的語法差異很大。它通常是 已命名反向參照 語法的延伸。JGsoft V2 和 Ruby 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 和負數視為 相對子常式呼叫。
| 快速入門 | 教學 | 工具和語言 | 範例 | 參考 | 書籍評論 |
| 簡介 | 目錄 | 特殊字元 | 不可列印字元 | Regex 引擎內部 | 字元類別 | 字元類別減法 | 字元類別交集 | 簡寫字元類別 | 句點 | 錨點 | 字詞邊界 | 交替 | 可選項目 | 重複 | 群組和擷取 | 反向參照 | 反向參照,第 2 部分 | 命名群組 | 相對反向參照 | 分支重設群組 | 自由間距和註解 | Unicode | 模式修改器 | 原子群組 | 獨佔量詞 | 前瞻和後顧 | 前瞻和後顧,第 2 部分 | 將文字保留在比對之外 | 條件式 | 平衡群組 | 遞迴 | 子常式 | 無限遞迴 | 遞迴和量詞 | 遞迴和擷取 | 遞迴和反向參照 | 遞迴和回溯 | POSIX 方括號表示式 | 零長度比對 | 繼續比對 |
頁面網址:https://regular-expressions.dev.org.tw/backrefrel.html
頁面最後更新:2019 年 11 月 22 日
網站最後更新:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。