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/