【正規表現】中国語の単語カードを作るためには 梶原

2016-07-02

少しく遅くなりましたが、例会時のプレゼン内容をアップします。

日本語入力では、ほとんどのかたがローマ字入力で漢字に変換します。
(かな入力で入力するかたは今は殆どいないでしょうけど)
もちろん日本人なら漢字の読みが分かりますのでそれは問題がありません。
自分は少々中国語(汉语 han yu/普通话 pu tong hua)をちょっとだけ勉強しています。
日本語と同じように中国語もローマ字入力のように入力して行きます。

そのピンイン入力をするのですが、漢字の読みが分からないと入力ができません。
その読みを勉強するのに、Wordpressの単語カード調のプラグインを使って勉強しようと
日本語の当用漢字もどきの中国語でよく使う漢字(汉字 han zi)2500字を探しました。
それをWordpress単語カードプラグインに入力するためには、
漢字と読み(ピンイン)を一対一に並べ替える必要が出てきました。
取り出した2500字は下図のようになっています。

それを正規表現を使って縦一列に並べ替え、それにピンイン(ローマ字読み)を入れて行く作業をします。
手作業で一列になれば変えるのは大変な手間ですのでそれを正規表現を使って一括処理。
というのが今回のテーマです。Jedit正規表現 01

中国語 漢字2500字
Jeditを使ってまず、タブをスペースに変換し、プレーンテキストにして、スペースを改行と入れ替えます。 Jedit正規表現 02

検索対象 \s →置換対象 \n

Jedit正規表現 03

処理後次に、空白行を削除します。  Jedit正規表現 04

検索対象 ^\s → 置換対象 空白
自分はさほど正規表現に詳しくありませんので手探りで操作している段階です。
検索対象スペースが、全角であるか半角であるかは、ちょっと置いておきます。 Jedit正規表現 05

空白行削除後
今度は画数表示が邪魔になりました。画数表示では、一画から二十三画まであります。
このパターンは、漢字が連続して二回もしくは三回表示されますので、
そのパターンを探して削除します。Jedit正規表現 10

検索対象 \p{Han}{2}?  → 置換対象 空白
エスケープ文字(MacOSではバックスラッシュ)で回避して、
プロパティー属性が漢字で、二回以上連続でマッチするパターンを探し、
その行を削除する。という作業をします。Jedit正規表現 11 これで、2500文字を縦一列に並べ替えることができました。
本当は動画で説明したほうがリアルタイムで動きが分かり、理解しやすいかと思いますが、
途中で面倒になってやめてしまいました。そのうち気が向けばやってみたいと思います。
投稿者 梶原
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ページトップに戻る↑                           ページ一番下へ↓

Since1991 © Shimayugu All Rights Reserved.
アップルおよびアップルのロゴは、米国および他の国々で登録されたApple Inc.の商標です。
湘南マッキントッシュユーザーズグループは、独立したユーザグループで、Apple Japan合同会社が権限を与えた団体、支援する団体、またはその他に承認する団体ではありません。