Char::Class

Char::Class

[1] Perl 5.8 以降では、 \p{InFooSet}\P{InFooSet} という文字クラス正規表現で使えます。例えば、 Perl 標準で \p{InHiragana} という文字クラスが定義されており、 これを正規表現中で使うと、平仮名1文字と一致します。

[2] この文字クラスPerl スクリプト内で自由に定義できます。 これを利用した文字クラス定義群が、この Char::Class モジュール群です。

配布・開発

[3] CharClass — A Perl Regular Expression Character Class Library https://suika.suikawiki.org/www/charclass/readme

[4] ライセンスはperlと同じライセンスを採用しています。

[5] 開発に参加したい方は mailto:wakaba@suikawiki.org までご連絡下さい。また、ご意見などはこの Wiki page 内 (>>6 とか) に書いて下さい。

モジュールの生成

[7] モジュールは編集が容易なように、直接使用できる Perl module 形式ではなく、ある程度形式化された Perl script で CVS repository には入っています。 (*-src.upl という名前になっています。)

モジュールの生成のための共通項は mkpm.pl https://suika.suikawiki.org/gate/cvs/perl/lib/Char/InSet/mkpm.pl として独立させてあります。 (mkpm.pl 単体では動作しません。) (ちょっと命名が悪かったという気はしています。)

モジュールを生成するには、

 $ perl foo-src.upl > foo.pm

とします。 make が使えるなら、 make foo.pm でも OK です。 全部一気に作るときは make all とします。

[8] 各 source script の書き方は、既存のものを眺めてみればわかると思います。文字を直接書く方法, perl が分かる形で書く方法, ISO/IEC 10646-* 附属書A の表のような形式で書く方法が用意されています。 (モジュールに変換する時にどの形式も perl が分かる形に変換されます。)

現在あるモジュール一覧

Char::InSet::Han

現在、常用漢字表の文字や人名用漢字表の文字、 学年ごとの教育漢字などの集合を含んでいます。

Char::InSet::Kana, Char::InSet::Katakana, Char::InSet::Hiragana

Kana-src.upl は特殊で、これら3つのモジュール共通の source script です。実行時の引数により出力が変化します。

Char::InSet::UCS

UCS の組 (collection) です。 ISO/IEC10646-* 附属書A で定義されています。 Perl には Unicode に基づく block ごとの定義が入っていますが、これはかならずしも ISO/IEC 10646 と一致しません。

メモ