わたなべです。
"T.Watanabe" <wtnabe@...> writes:
> なのにリファレンスなどでは Regexp =~ string な形の記述が当然のように書
> かれています。これはなぜでしょうか? まぁ「オブジェクト.メソッド」とい
> う書き方からするとこの順番で書いた方が統一が取れていますが、じゃあなぜ逆
> に置いても動いちゃうのよ、というのも気になります。
内部的にはString =~ RegexpはRegexp =~ Stringとして解釈されます。
> それならそれでリファレンスマニュアルなどに一言加えておいてもらえるとよい
> のではないかと思うのですが、どんなもんでしょうか?
いやもちろんあります。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=String#self.20.3d.7e.20other
self =~ other
正規表現 other とのマッチを行います。マッチが成功すれば
マッチした位置のインデックスを、そうでなければ nil を返
します。
組み込み変数 $~ にマッチに関する情報が設定されます。
other が正規表現でも文字列でもない場合は
other =~ self
を行います。
ruby 1.8 feature: 以前までは、other が文字列であった場合
にはこれを正規表現にコンパイルして self に対するマッチを
行っていました。1.8 以降は、 other に文字列を指定したと
きには例外 TypeError が発生します。
--
わたなべひろふみ