From: Masaya TARUI Date: 2010-05-10T12:36:38+09:00 Subject: [ruby-dev:41247] Regexpの仕様について 樽家です。 [ruby-dev:41246] からで、Regexpの仕様についてですが、どこをみればいいのか分からず、 以下について仕様なのかバグなのか判断が付きません。 それぞれどうなんでしょうか? p /(?a)(b)/.match("ab").to_a # => ["ab","a"] p [$~["a"],$1,$2] # => ["a","a",nil] p Regexp.union(/(a)b/,/(b)c\1/).match("bcb").to_a # => [] p Regexp.union(/(?a)b/,/(b)c\1/).match("ab").to_a rescue p $! # => #a)b/,/(?b)c\g/).match("ab").to_a rescue p $! # => # call: ... 少なくとも日本語マニュアルのRegexp#unionで書かれている 「引数として与えた pattern を選択 | で連結し、Regexp として返します。結果の Regexp は与えた pattern のどれかにマッチする場合にマッチするものになります。 」 のうち、「結果の Regexp は与えた pattern のどれかにマッチする場合にマッチするものになります。」は今のところ嘘に見えます。 個人的には使った事のないメソッドですが、わざわざメソッドにしているからには後方参照などをうまく処理して欲しいかなとも思います。 -- 樽家昌也(Masaya TARUI) No Tool,No Life.