作者: Bruce.
日時: 2006/2/26(00:10)
Bruce.です。

藤岡和夫 さんは書きました (2006/02/25 14:58):
> 「正規表現ハンドブック」ネタ。
> 
> SECTION 09.03 漢字・ひらがな・カタカナにマッチさせる(191ページ)
> 
> ここで、文字列がシフトJIS、あるいはEUCの場合、Unicodeプロパティが使えな
> いということになって、従来のjperlで使う正規表現が例示されているのですが、
> Perl5.8では、sjisエンコーディング下で、\p{Han}や\p{Hiragana}が使えるよう
> に思います。

えー、チェックしてみましたが、このページはPerlに限った話では
ないので、use encoding 'sjis'指定時のことを書くスペースが
なかったのではないかと思います。で、\p{}はあくまでUnicode
プロパティ(Unicodeコンソーシアムが提案している)ものなので
別の文字コードのときに使えないというのは間違いではないでしょう。

ただ、内部的にでもUnicodeに変換して扱うものであれば、当然
Unicodeプロパティは使えるものなのでその辺の記述が足りなかった
かも知れません

> また、Perl5.8のsjisエンコーディングでは、jperlの漢字の正規表現は同じ動作
> になりませんね。

マッチング字に使用されるのはあくまで utf-8なので

亜 → U+4E9C (E4 BA 9C)
煕 → U+7155 (E7 85 95)

であり、またJISとの並びとはぜんぜん関係ありませんのでこの
範囲にJIS X0208で収められている漢字がすべて入るわけでは
ありません。実際、

藤 → U+85E4
岡 → U+5CA1
和 → U+548C
夫 → U+592B

「藤」が範囲から外れてますね。

記述が足りないのは確かだと思いますが、どう対処したものやら。
正誤表に載せるようなものではないと思えるし。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk@...
	web  www.kt.rim.or.jp/~kbk/index.html#zakkicho
	     homepage3.nifty.com/farstar/