[#954] Rational — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

23 messages 1996/10/30
[#955] Re: Rational — matz@... (Yukihiro Matsumoto) 1996/10/30

まつもと ゆきひろです.

[#968] Re: Rational 1996/10/31

けいじゅ@SHLジャパンです.

[ruby-list:757] Re: [BUG] $1 is not yet set in sub()

From: matz@... (Yukihiro Matsumoto)
Date: 1996-10-04 18:23:15 UTC
List: ruby-list #757
In message "[ruby-list:756] [BUG] $1 is not yet set in sub()"
    on 96/10/04, Hara Shin-ichiro <sinara@blade.nagaokaut.ac.jp> writes:
|
|原です。
|
|これはバグだと思うのですが、
|
|print "AB".sub(/(A)/, $1), ",", $1,"\n"
|
|の出力が B,A となってしまいます。$& なども同様です。

間違いやすいのは確かですが,バグではありません。最初の$1(sub
の引数)の評価はsubの内部でマッチが行われるより*前*に行われま
す。よって"AB"は($1が未設定の場合)"B"に置換され,subの実行後
には$1は"A"に設定されます。

ですから,この出力"B,A"は仕様通りです。subの正規表現に対して
部分参照を行う時には'\1'を使ってください。""で括るのではなく,
''で括らないと別の問題が起きます。"\\1"ならOKですけど

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

In This Thread

Prev Next