Actions
Backport #8583
closedA problem of condition regexp with a named capture
Status:
Closed
Assignee:
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
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: UNKNOWN, 2.0.0: REQUIRED
Updated by usa (Usaku NAKAMURA) over 11 years ago
- Backport changed from 1.9.3: UNKNOWN, 2.0.0: REQUIRED to 1.9.3: DONTNEED, 2.0.0: REQUIRED
Updated by knu (Akinori MUSHA) over 11 years ago
Thank you. I've just reported this to the upstream with the given test cases: https://github.com/k-takata/Onigmo/pull/20
Updated by knu (Akinori MUSHA) over 11 years ago
Onigmo 5.13.5 has been released, which includes the fix.
Updated by naruse (Yui NARUSE) over 11 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby master to Backport200
- Target version deleted (
2.1.0)
Merged as r41764,41765
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Status changed from Open to Assigned
- Assignee set to nagachika (Tomoyuki Chikanaga)
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r41780.
Ippei, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 41764,41765,41767: [Backport #8583]
* regcomp.c (): Merge Onigmo 5.13.5 23b523076d6f1161.
https://bugs.ruby-lang.org/issues/8583
* [bug] (thanks Akinori MUSHA and Ippei Obayashi)
Fix a renumbering bug in condition regexp with a named
capture. [Bug #8583]
* [spec] (thanks Akinori MUSHA)
Allow ENCLOSE_OPTION in look-behind.
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0