From: WATANABE Hirofumi Date: 2000-12-17T14:45:04+09:00 Subject: [ruby-list:26572] Re: Regexp.new のオプション わたなべです. URA Takefumi writes: :というか、最初に原さんの本を参照して、で、 : :>$ ruby -ve 'p Regexp.new("", "n")' :>ruby 1.6.1 (2000-09-27) [i586-cygwin] :>//i : :という結果が出てきて混乱したようです ^^; :なんでiなんだろう、って。どうしてでしょう? "n" は真だから, そこに文字列を指定しても無意味です. if (argc >= 2) { if (FIXNUM_P(argv[1])) flag = FIX2INT(argv[1]); else if (RTEST(argv[1])) flag = RE_OPTION_IGNORECASE; } なぜかこうなってるのかといえば歴史的理由からなんですけど, 今となっては Regexp.new(string[, option[, code]]) で option は true なら ignore case Fixnum ならマニュアルのとおり 文字列なら i, x, p, n, e, s, u 全部受け付ける ようにすると混乱がない気がしますね. こうすると 3 番目の引数は要らなくなるけど, おそらく互換性を考えると残さざるを得ないわけですが, でも 2 番目の "true なら ignore case" はもう要らないのかも. -- わたなべひろふみ