- 締切済み
漢字、カタカナ、ひらがな、英数字の判定
perl5.8.5でCGIのプログラムを作っています。 入力された文字(2バイト文字)が「漢字」「カタカナ」「ひらがな」「英数字」「その他」のどれなのか文字種類を判定したいと思っています。 プログラムの文字コードはEUCで書いています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- vsba23895
- ベストアンサー率58% (18/31)
回答No.2
character class というのがあって \p{Han} 漢字 \p{Hiragana} 平仮名 \p{Katakana} 片仮名 \p{Ps} 開き括弧 … とかいろいろあります。(URL 参照) 処理対象の文字列の文字コードを utf-8 にしておけば、 if ($c =~ /\p{Hiragana}/) { ... } のように「平仮名を含むか」のテストができます。 はまりやすいのは「ー」(仮名長音)でして、これは Hiragana でも Katakana でもありません。このため \p{Katakana}+ で「片仮名の連続」を取り出したつもりが「ー」のところで切れたりとか、よくやらかします。「・」(中黒)も同じ。
- gyamboi
- ベストアンサー率11% (70/585)
回答No.1
正規表現はご存知ですか?