From: "NARUSE, Yui" <naruse@...>
Date: 2009-08-05T05:14:13+09:00
Subject: [ruby-dev:39017] Re: [Bug #1787] URI 	ライブラリの正規表現パターン

成瀬です。

Tadayoshi Funaba wrote:
>>> 話が少しずれますが、標準ライブラリでは、少くとも scanf、time、date など
>>> で同様の問題がでるように思います。一般に、\d が [0-9] ではなくなった事
>>> 態にどう対処するのが正しいでしょうか。
>> 個別具体的に、そのライブラリに置いて \d と [0-9] のどちらが「正しい」かを
>> 
判断する事になります。
>> URIは許さない方がいいでしょうし、timeやdateでは許してもよいかもしれません。
> 
> \d が一般化された意義は理解しますが、[0-9] と同等でなくなった事は、いい
> 事ばかりでもないように感じます。以前と同じ意味を表現したいが為にほとん
> どすべての \d を [0-9] に置き換えるのは大変です。可読性、保守性の面でも
> 望ましくないと思います。
> 
> \d と書いて、[0-9] と同等であると示す方法があれば、[0-9] と書くよりよい
> し、むしろ意図が明確になると思いますが、そういうものを検討する余地はあ
> るでしょうか。

ちなみに、
:\d は \p{Nd}
  Unicode Technical Report、Perl、Python、.NET
:\d は [0-9]
  Java, ECMAScript
という感じのようです。

http://unicode.org/reports/tr18/
http://docs.activestate.com/activeperl/5.10/lib/pods/perlrecharclass.html
http://docs.python.org/3.1/library/re.html
http://msdn.microsoft.com/ja-jp/library/20bw873z(VS.80).aspx
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/regex/Pattern.html

-- 
NARUSE, Yui  <naruse@airemix.jp>