• 締切済み

漢字、カタカナ、ひらがな、英数字の判定

perl5.8.5でCGIのプログラムを作っています。 入力された文字(2バイト文字)が「漢字」「カタカナ」「ひらがな」「英数字」「その他」のどれなのか文字種類を判定したいと思っています。 プログラムの文字コードはEUCで書いています。 よろしくお願いします。

みんなの回答

  • 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}+ で「片仮名の連続」を取り出したつもりが「ー」のところで切れたりとか、よくやらかします。「・」(中黒)も同じ。

参考URL:
http://fleur.hio.jp/perldoc/mix/pod/perlunicode.html
  • gyamboi
  • ベストアンサー率11% (70/585)
回答No.1

正規表現はご存知ですか?

関連するQ&A

専門家に質問してみよう