このサイトについて、さらに |
はじめに |
正規表現クイックスタート |
正規表現チュートリアル |
置換文字列チュートリアル |
アプリケーションと言語 |
正規表現の例 |
正規表現リファレンス |
置換文字列リファレンス |
書評 |
印刷可能な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 1.47以降、Ruby構文を追加しました。さらに複雑なことに、Boost 1.47ではこれらのバリエーションが乗算されるようになりました。Boost 1.47以降では、相対バックリファレンスを次のように指定できます。\gまたは\kそして、波括弧、山括弧、または引用符を使用します。これにより、さらに\g-1が加わり、合計7つのバリエーションになります。これは、\gを山括弧または引用符と負の数で相対サブルーチンコールとして扱うRuby、PCRE、PHP、R、JGsoftとBoostを競合させます。
| クイックスタート | チュートリアル | ツールと言語 | 例 | リファレンス | 書評 |
| はじめに | 目次 | 特殊文字 | 非表示文字 | 正規表現エンジンの内部動作 | 文字クラス | 文字クラスの減算 | 文字クラスの交差 | 文字クラスの省略記法 | ドット | アンカー | 単語境界 | オルタネーション | オプション項目 | 繰り返し | グループ化とキャプチャ | バックリファレンス | バックリファレンス、パート2 | 名前付きグループ | 相対バックリファレンス | ブランチリセットグループ | フリースペースとコメント | Unicode | モード修飾子 | アトミックグループ化 | 所有格量子化子 | 先行参照と後行参照 | 先行参照と後行参照、パート2 | マッチからテキストを除外する | 条件式 | バランスグループ | 再帰 | サブルーチン | 無限再帰 | 再帰と量子化子 | 再帰とキャプチャ | 再帰とバックリファレンス | 再帰とバックトラッキング | POSIXブラケット式 | ゼロ長マッチ | マッチの継続 |
ページURL: https://regular-expressions.dokyumento.jp/backrefrel.html
最終更新日: 2019年11月22日
サイト最終更新日: 2024年3月15日
Copyright © 2003-2024 Jan Goyvaerts. All rights reserved.