電子書籍の厳選無料作品が豊富!

perl5.8.5でCGIのプログラムを作っています。

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

よろしくお願いします。

A 回答 (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. …
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!