subject: 漢字1字にマッチする正規表現       「漢字1字にマッチする正規表現」の補足説明 2月に行なった正規表現によるテキスト検索の講習会で,文字クラスを利用して 任意の漢字を指定する方法についてお話しましたが,説明が不十分だったので, 補足いたします。 ■1. 「熙」と「煕」 サクラエディタでは (JIS X 0208の範囲内の文字からなるテキストが 対象であれば) 漢字1文字を指定するには [亜-熙] とすればよいと 説明したところ,実際に検索してみると,漢字なのにマッチしないものが あるのはなぜかとの質問を受けました。その時は理由がわからず回答を 保留にさせていただきましたが,どうも,[亜-熙] ではなく [亜-煕] と してしまったのが原因だったようです。(識別しやすいように,問題の漢字を それぞれ《熙》【煕】と表記することにします。) [亜-《熙》] という正規表現を説明するのに,「ハイフンの後の文字は “こうきじてん”の“き”です」という言い方をしたので,「《熙》」を 入力するのに,「こうきじてん」と入力し,仮名漢字変換で「康《熙》字典」を 呼び出して,不要な文字を削除した方が多かったのではないかと思いますが, 使用する IME によっては「康《熙》字典」ではなく,「康【煕】字典」が 呼び出されます。次のように「【煕】」と「《熙》」は,JIS X 0208でも, Unicodeでも異なる文字として登録されており,[亜-【煕】] としてしまうと, 【煕】の後から《熙》までの漢字が対象から外れてしまいます。   【煕】 JIS 5F66,句点 6370,Unicode U+7155   《熙》 JIS 7426,句点 8406,Unicode U+7199 「こうき(じてん)」と「こうきてい」で呼び出される漢字が異なる IME もあること, 文字が小さいと「【煕】」と「《熙》」を識別するのは難しいことを考えると, 仮名漢字変換で入力するのではなく,IME パッドの「文字一覧」(Windows の場合) で 入力した方が安全かもしれません。 ■2. 「々」 「々」は,JIS X 0208でもUnicodeでも記号扱いで,漢字のブロックに 入っていないため,「々」を漢字扱いするのであれば,[亜-熙々] とする必要が あります。[亜-熙々]+ とすれば,「明々白々」「侃々諤々」などにもマッチします。    追記 [2011/11/14]: JIS X 0212,Unicode には漢字扱いの「乄」がある。 「仝」はUnicodeでは漢字のブロック (CJK統合漢字) に入っていますが, JIS X 0208では記号類のブロックに入っていますので,サクラエディタなどの ツールでは,必要があれば,これも追加することになります。 同様に,平仮名の連続,片仮名の連続を検索する場合には,「ヽ」「ゝ」などの 扱いに気をつける必要があります。 -- 名古屋大学大学院国際開発研究科 国際コミュニケーション専攻 大名 力 (Tsutomu OHNA)