From: TAKAISHI Hayato Date: 2003-09-16T18:25:08+09:00 Subject: [ruby-list:38396] Re: 文字クラスと//i 高石です。 From: kkosako@softbank.co.jp Subject: [ruby-list:38395] Re: 文字クラスと//i > > /[A-_]/i > > > > が、invalid regular expression になります。 > > これは何にマッチするべきなのでしょうか? > A-Z, a-z, 0x5b-0x5fかな? 私の感覚ではそうなることを期待していました。 というのは、まず /[A-_]/ という正規表現があって、そこに i を 追加するという感覚だったので、 "A" =~ /#{hoge}/ がマッチする場合、hogeの中身に関わらず、 "a" =~ /#{hoge}/i もマッチするものだという認識でいました。 といっても、これがエラーになるのは仕様であるといわれれば、そ れはそれで納得できます。そういうものだと知っていれば、エラー にならないよう分割して書くだけのことなので。 ただ、その場合は、/[!-_]/i に対してもエラーなり警告なり出し て欲しいとは思います。 > /[a-_]/iの場合はどうでしょうか? この場合は、a-_ が ASCIIコード順で逆順になるので、その時点で エラーになるという動作でいいと思います。 もしくは、親切に [_-a] と順序を替えて解釈し、[_`aA] にマッチ しても悪くないとは思います。 いずれにしても、私の感覚では //i は、まず // の中身を解釈し てから i だと思っていたのですが、どうやら現実はそうではない ようですね。 /--------------------------------------------------------/ 高石 勇人 < rio-t@presen.to > PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc /--------------------------------------------------------/