非バックトラッキング先読みおよび後読み

肯定先読みおよび後読みでは、バックトラックは実行されません。つまり、それらの内容は、非バックトラッキング (?> ) グループの内容と同じように扱われます。

先読みと後読みは常にゼロ幅なので、バックトラッキングの動作が見られるのは、キャプチャ グループが肯定先読みおよび後読みの中に出現する場合に限られます。たとえば、(?=(a*))\1a に一致する文字列が見つかることはありません。それは、先読みの中で定義されたグループ 1 により、存在する "a" がすべて処理された後で、\1a がもう 1 つの "a" を必要とするからです。先読み式はバックトラックされないため、検索エンジンが "a" の数を少なくしてグループ 1 を再試行することはありません。

グループ化、先読み、および後読み構成体の詳細については、「グループ化構成体」を参照してください。

参照

その他の技術情報

.NET Framework の正規表現