From: matz@... (Yukihiro Matsumoto) Date: 2003-05-26T16:21:51+09:00 Subject: [ruby-list:37726] Re: マッチした部分を配列にしまう方法 まつもと ゆきひろです In message "[ruby-list:37723] Re: マッチした部分を配列にしまう方法" on 03/05/25, Koji Arai writes: |> * この修正はあるべきでない → 理由は? |> * この修正は非互換である → どう対応するか? |> |> のいずれかだとは思うのですが、前者なら議論した上で合意ができ |> れば元に戻せばよいことですし、後者なら移行パスを検討すれば良 |> いと思います。 | |前者です。理由は、直観的でないからです(私の感覚で)。 | |なぜ、直観的でないか考えたところ、=~ は、正規表現マッチを行 |う演算子という認識があるからだとおもいます。String#index は |正規表現マッチではありませんから。 | |以前は =~ に複数の意味があるようには思えなかったが、今は複数 |の意味があるように思えるっと言い替えてもいいです。 まあ、理解できる考えです。 |# そもそも string =~ string をなくしてもいいのではないかと思 |# えます。 もうちょっと整理してみましょう。考えられる組み合わせは string =~ regex regex =~ string string =~ string の3通りです。前二者については疑問はないですよね。正規表現が パターンで、文字列がマッチ対象とはっきり分かりますから。 で、三番目のパターンをどうするか、が問題ですが、 (a) 右辺を正規表現化してパターンとみなす (b) 右辺を文字列のままパターンとみなす (c) 禁止 くらいの候補が考えられると思います。左辺がパターンと言う組み 合わせも考えられないことはありませんが、「str =~ str」は右辺 がパターンというのはAWK以来の慣習のようですから、むげに捨て るのもなんだと思うので、考えないことにしましょう。そうすると (a) 1.6 (b) 現在の1.8 (c) 新井案 ということになるんでしょうか。(a)が気に入らないから(b)にした わけですが、考えてみれば(c)でも妥協できるかも。 まつもと ゆきひろ /:|)