From: Yui NARUSE Date: 2009-11-15T21:46:53+09:00 Subject: [ruby-dev:39697] [Bug #2368] URI.regexp にマッチする文字列が URI.parse できないことがある チケット #2368 が更新されました。 (by Yui NARUSE) > 私は「URI.regexp にマッチする文字列の集合と URI.parse できる文字列の集合は等しいのだろう」と思っていたため > 提示したようなふるまいにとまどったのですが、両者は概念が異なるのでしょうか? > (例えば、URI.parse は個別のスキームの制約を考慮するなど) scheme によって文法が変わる URI は本来正規表現では扱えない代物なので、 URI.regexp の存在自体が設計に失敗している気はしないでもないです。 もっとも、URI.regexp(scheme) という形もあるため、そちらならば対応可能ではあるわけで、 URI.regexp('http') =~ 'http://' がマッチしてしまうのはバグということは可能かもしれません。 また、URI.parse は scheme ごとに処理を分けているので、 URI.parse('file://') でも URI::InvalidURIError: bad URI(absolute but no path): file:// が 上がってしまうのはバグかもしれません。 どちらもこのチケットとは若干ずれるので、個別にチケットを上げていただければと思います。 ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2368 ---------------------------------------- http://redmine.ruby-lang.org