From: matz@... (Yukihiro Matsumoto) Date: 1999-03-16T10:25:08+09:00 Subject: [ruby-dev:6338] Re: Ruby 1.3.1-990315 まつもと ゆきひろです In message "[ruby-dev:6331] Re: Ruby 1.3.1-990315" on 99/03/16, Wakou Aoyama writes: |> あー,そーかあ.安易に変更したけどいろいろ大変だったかも. |> どうするのが望ましいのかなあ. | |元の主張を通すのならば、 | |$ は \n の直後にマッチするアンカーであるから、/\n$/ という表現は蛇足で |あり、素直に /\n/ と書くべきである。また、文字列の末尾の \n にマッチさ |せたい場合は /\n\Z/ と書くべきである。 | |とかでしょうかね。 ま,それがスジではありますが,スジを通すばかりでも住みにくい 世の中ですから. |/\n$/ がどのように使われているのかわかりませんが、もし Perl からの移植 |だとしたら、$* = 0 (//s)を指定してあるスクリプトではないかと思われます。 |これは、\Z の無い Perl 4 において \Z 相当を実現する為に取られていた手法 |であり、常に $* = 1 相当の挙動である Ruby では誤動作するはずです。 で,$*=0 相当の挙動を用意して,そっちをデフォルトにするのは どうだろうか(そうすれば \n に . がマッチしない問題も解決でき る)などと考えたんですが,実装の方針はたっても,それが妥当で あるのかは一晩考えても判断できませんでした. # 実装する夢を見てしまった ^^;;; $*がなければ /sは不必要で /m だけあれば良いので,オプション 文字の重複の問題もありません.後は * それで使いやすいのか * 互換性は という問題ですね.また,Perlの /m の挙動を見るとなんかちょっ と違うような気がするんですけど."\n" =~ /\n$/ は成立するし. # なんか根本的に考え方が違う? まつもと ゆきひろ /:|)