[ruby-list:37655] Re: マッチした部分を配列にしまう方法

From: Minero Aoki <aamine@...>
Date: 2003-05-07 09:53:47 UTC
List: ruby-list #37655
青木です。

  In mail "[ruby-list:37651] Re: マッチした部分を配列にしまう方法"
    tsuji.td@ncos.nec.co.jp wrote:

> はじめまして、辻(忠)です。

> ># その2
> >file_lines.each { |line|
> >	if /vc\w\w\w\w\w\w/i =~ line
> 
> その1・2とも正規表現が右側にくるように、
> 
>  if( line =~ /efct\w\w\w\w\w\w/i)
> 
> って形じゃないと問題あるんじゃないでしょうか。

いや、そこは大丈夫です。
Ruby の =~ は正規表現が左でも動きますから。

  例: どちらでも結果は同じ

  % ruby -e '/abc/ =~ "xyzabcxyz"; p $&'
  "abc"

  % ruby -e '"xyzabcxyz" =~ /abc/; p $&'
  "abc"

ちなみに本当は Ruby では「正規表現が右でも動く」が正解です。
=~ を実行するのは正規表現オブジェクトなので、正規表現が左に
来るのが本来の姿なんです。

  a =~ b

は

  a.=~(b)

ということですから。
-------------------------------------------------------------------
青木峰郎

In This Thread