[#28446] named capture and /g, /G option — "K.Kosako" <sndgk393@...>

Ruby 1.9に、

30 messages 2006/03/21
[#28449] Re: named capture and /g, /G option — "K.Kosako" <sndgk393@...> 2006/03/21

> Ruby 1.9に、

[#28452] Re: named capture and /g, /G option — Yukihiro Matsumoto <matz@...> 2006/03/21

まつもと ゆきひろです

[#28453] Re: named capture and /g, /G option — "K.Kosako" <sndgk393@...> 2006/03/21

Yukihiro Matsumoto wrote:

[ruby-dev:28458] Re: named capture and /g, /G option

From: Yukihiro Matsumoto <matz@...>
Date: 2006-03-22 14:06:35 UTC
List: ruby-dev #28458
まつもと ゆきひろです

In message "Re: [ruby-dev:28457] Re: named capture and /g, /G option"
    on Wed, 22 Mar 2006 21:03:54 +0900, "K.Kosako" <sndgk393@ybb.ne.jp> writes:

|もう忘れてしまっているのですが、このあたりの仕様
|について、以前の議論で結論が出ていたでしょうか?

結論は出てないと思いますけど、まあ、えいや、で決めていいんじゃ
ないでしょうか。

|問題点を整理すると、
|
|パターンとオプションの組み合わせで番号参照が
|無効になっているとき、Rubyレベルで、
|  1. 置換文字列の中の番号参照を実行時エラーにするか?
|  2. MatchData#[]の引数の番号(n >= 1)参照を
|     実行時エラーにするか?
|  3. $1, ... $9を実行時エラーにするか?
|それと、
|  4. 置換文字列の中の名前指定の形式
|
|私の意見としては、1,2,3全部許可にするか、
|3のみ許可のどちらかかなと思います。
|4.については、パターン中の名前参照と同じ形式
|\k<name>で良いかなと思います。

ここでの「許可」、「不許可」の具体的な意味が分からないので何
ともいえないのですが、()が非捕獲式集合と解釈される以上、

  * マッチしていないと見なす
  * 実行時エラーにする

のいずれかしかないと思いますが、他の部分の動作($1などはnilを
マッチしていない時nilを与える)も考えると前者の方が整合性が高
いように思います。もっとも、その他の部分も含めて実行時エラー
に変更して揃えるというのもありえないことはないわけですが。

                                まつもと ゆきひろ /:|)

In This Thread