From: kkosako@... Date: 2003-07-17T12:51:01+09:00 Subject: [ruby-dev:20705] Re: [Oniguruma] explicit capture > -----Original Message----- > From: Tanaka Akira [mailto:akr@m17n.org] > の部分はもっと強烈な話で、$1, ... をいついかなるときでも(名前を使わな > い時でも)禁止するという話です。まぁ、これを実際にやるには名前のほうを > すごく使いやすくしないといけません。少なくとも $~["name"] なんてのは長 > すぎてダメだと思います。直接ローカル変数に代入できたらいいんではなかろ > うかと思っていたりもしますが、式展開の中に名前が入ってたらどうしようと > かなかなか問題です。でも、もし、これが可能なら、最終的には「パターンに > よってデフォルトが変化する」こともなくなるわけで、なかなか魅力的です。 式展開の中に名前が入っていたとしても、同様に扱うとしておいて、 ローカル変数にならない指定方法を、別に用意するのが良いと思います。 例としては、トップレベル(他のnamed groupで囲まれていない)で定義された 名前だけがローカル変数になる。 /(?<_>(?...)){0}\g/ あるいは、先頭が大文字の名前の場合は、ローカル変数にならない。 先程気づいたのですが、named groupの中で名前に使用できる文字を あまり制限していなかった('\', '>', ')', NUL以外全て)のですが、 ローカル変数名に使用できる名前程度に制限しておいたほうが 良いでしょうか? -- 小迫@出向中