[ruby-list:38397] Re: 文字クラスと//i

From: Takahiro Kambe <taca@...>
Date: 2003-09-16 09:42:50 UTC
List: ruby-list #38397
ほんとうのところはわかりませんが、

In message <20030916.182335.07162814.rio-t@presen.to>
	on Tue, 16 Sep 2003 18:25:08 +0900,
	TAKAISHI Hayato <rio-t@presen.to> wrote:
> > > /[A-_]/i
> > > 
> > > が、invalid regular expression になります。
> > 
> > これは何にマッチするべきなのでしょうか?
> > A-Z, a-z, 0x5b-0x5fかな?
> 
> 私の感覚ではそうなることを期待していました。
Rubyではなく正規表現一般論として、

- AからZ
- aからz
- 0から9

といったものを範囲指定している限りは、文字エンコーディングに依存しない
でアルファベットや数字の範囲を指定する意味がある。言い替えると、この範
囲を越えた場合は文字エンコーディングに依存してしまうため、結果は予期で
きない。


といった、解釈もできそうな気がします。コードの読みやすさや移植性といっ
た観点からは使わない方が良い気もします。もっとも、日本語EUCの文字の場
合はどうなるんだとか言われると、それにはっきりとは答えられませんが。:-)

(と、ここまで書いてから、目一杯ASCIIの文字エンコーディングに依存した範
囲指定な正規表現を自分で書いたperlスクリプトで使ったことがあることを思
い出しました。)

-- 
神戸 隆博(かんべ たかひろ)		at 仕事場 


In This Thread