Project

General

Profile

Actions

Backport #8583

closed

A problem of condition regexp with a named capture

Added by ohai (Ippei Obayashi) over 11 years ago. Updated over 11 years ago.


Description

以下の条件分岐を含む正規表現は "xy" "yx" にマッチし、"xx" "yy" にはマッチしません。
/\A((x)|(y))(?(2)y|x)\z/
名前付きキャプチャを用いた以下の正規表現も同じ挙動をするはずですが、そうはなっていません。
/\A((?x)|(?y))(?()y|x)\z/

"xx" "yy" にマッチして "xy" "yx" にはマッチしない。

2.0.0-p247, trunk の両方で確認しました。

この問題について調べた所、 名前付きキャプチャを使うときキャプチャの番号をrenumberしている
所で renumber がもれています。

添付したパッチのように修正すれば直ると思います。


Files

regexp-condition-name.patch (528 Bytes) regexp-condition-name.patch ohai (Ippei Obayashi), 06/30/2013 04:35 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0