[Tokyo.pm] Re: [Tokyo.pm] utf-8 用の "word" char って?
Dan Kogai
dankogai @ dan.co.jp
2003年 11月 20日 (木) 12:05:15 CST
On Nov 21, 2003, at 12:46 AM, Keiichi Okabe wrote:
> 岡部です.
>
> 5.8.2 もでて,ActivePerl も5.8.1が出てきたので,utf8を
> 活用するスクリプトを作り始めています.
Perlのソノ部分担当の弾です。
> で,
>
> \w Match a "word" character (alphanumeric plus "_")
>
> に対応する,日本語文字クラス(って言えばよいのかな?)
> ってのはどう記述すればよいのでしょうか.
ちょっと定義が曖昧でわかりません。要するに、漢字なら漢字、カタカナならカタカナ、ひらがなならひらがなだけ抜き出せればよいのでしょうか?あるい
は、日本語としてOKな文字をすべて取り出すという意味でしょうか?とりあえず前者の場合を想定すると.....
> perldoc をあさっているのですが,見つからないので,どなたか(どこに出ている
> という情報でもよいので)教えてください.
例えば、カタカナだけ抜くのであれば、
\p{Katakana}
という表現が出来ます。以下、一例。
binmode STDIN =>":utf8";
binmode STDOUT=>":utf8";
while(<>){
my @words = /(\p{Han}+|\p{Hiragana}+|\p{Katakana}+|\p{latin}+)/g;
print join("," => @words), "\n";
}
__END__
これに、
漢字カタカナひらがなの混じったtext
をUTF-8で食わせると、
漢字,カタカナ,ひらがなの,混,じった,text
と出てきます。\p{}の詳しい使い方は、perldoc perlunicodeをご覧ください。
Dan the Perl5 Porter
Tokyo-pm メーリングリストの案内