作者: 藤岡和夫
日時: 2006/2/25(14:58)
毎度です。

「正規表現ハンドブック」ネタ。

SECTION 09.03 漢字・ひらがな・カタカナにマッチさせる(191ページ)

ここで、文字列がシフトJIS、あるいはEUCの場合、Unicodeプロパティが使えな
いということになって、従来のjperlで使う正規表現が例示されているのですが、
Perl5.8では、sjisエンコーディング下で、\p{Han}や\p{Hiragana}が使えるよう
に思います。

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

例えば、次のようなスクリプトを、utf8あるいはsjisエンコーディングの
Perl5.8やjperlで動かしてみたのですが。無論jperlでは、\p{・・・}をはずし
てです。

use encoding 'sjis';
#use encoding 'utf8';
while(<DATA>){
	while(/([亜-熙]+)/g){
		print "漢字:",$1,"\n";
	}
	while(/(\p{Han}+)/g){
		print "Han:",$1,"\n";
	}
	while(/([ぁ-ん]+)/g){
		print "ひらかな:",$1,"\n";
	}
	while(/(\p{Hiragana}+)/g){
		print "Hiragana:",$1,"\n";
	}
}
__DATA__
あなたは藤岡和夫です。
私はFUJIOKAです。

藤岡 和夫
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/