まつもと ゆきひろです

In message "[ruby-list:5652] How to distinguish 1.1 or lower (was Re: bug in String#scan ??)"
    on 97/12/12, Eiji-usagi-MATSUmoto <ematsu / pfu.co.jp> writes:

|うさぎです
|
|rubyのバージョンによって処理を分けたいんですが,どうしたら
|エレガントでしょうか?
|やりたいことは,1.1かそれ以前かを見分けたいだけです.(for mkmf)

なんか VERSION >= "1.1" ってのが一般的みたいです.
# Perlみたいに require 1.1 とかするかなあ.


|っていないので確認のため,str = "abc.def" として

|>   /^(.*)\.(.*)$/ =~ str
|>   base = $1
|>   ext  = $2

|というのをやったのですが,$1にも$2にも何も入ってくれません.

  str = "abc.def"
  /^(.*)\.(.*)$/ =~ str
  base = $1
  ext  = $2

  p [base, ext]

を実行したところ["abc", "def"]が出力されるようですが,なんか
間違えたかな?

| 正規表現 =~ 文字列
|
|という式は,どのようにしてオブジェクト指向的に理解したらよい
|のでしょうか?

正規表現オブジェクトの =~ メソッドが文字列を引数に実行される
と,正規表現が文字列にマッチする時マッチする位置を整数で返し
(先頭が0),失敗した時にはfalseを返す,です.

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