« # 新・午前十時の映画祭 ~ 『大脱走』 | トップページ | # 訃報 - 夏八木勲 »

2013.05.09

# 翻訳者のための正規表現~勉強会の解説、その4

前回のお題解説で、最後に

数字の全角/半角置換となると、これはマクロの領域

と書きました。


このシリーズでは、(少なくともまだ)マクロの話まで踏み込むことはしませんが、実は最新の秀丸エディタがこの置換に対応しているので、そのことに少しだけ触れておきます。

全角から半角、または半角から全角という置換をふつうではできない、というのは想像していただけると思います。

[0-9]

[0-9]

という検索はできても、ヒットした箇所について、たとえば

半角の8→全角の8

とか

全角の5→半角の5

という対応を置換だけでは判断できないからです。


マクロには tohankaku とか tozenkaku なんていうコマンドがあるので、わりと簡単に書けてしまいます。それから、秀丸マクロには「変換モジュール」という機能があって---デフォルトのままだとメニューからは選べないかもしれません---、その中に半角置換/全角置換があるので、たとえば文字列を選んでその機能を使うこともできます。

でも、今回やっているような置換ダイアログでは指定できません。いえ、これまではできませんでした


で、前回も書いたように、勉強会の準備をしていたら、Ver.8.20以降でこの置換が可能になっています。

簡単に言うと、上に書いた「変換モジュール」の機能を正規表現の中で呼び出す、という荒技を実装したようです。

詳しくは、秀丸エディタのヘルプを起動して、目次ツリーから

[目次]-[ 検索系コマンド]-[正規表現]-[置換の時の、変換モジュールによる変換の指定 ]

を見てください。


これを使うと、前回のお題は最終的にこうなります。


【検索その5 ~本当の最終形】

 [0-90-9]+\f ?\f[((]\f.+?\f[))]

【置換】

 \(0,ToHankakuAlnum) \(\3\)


【解説】

前回の最終形では、置換文字列が

 \0 \(\3\)

なっていました。\0 指定しているだけなので、ヒットした数字の部分をそのままに引き継ぐだけでした。

その \0 を \(0,ToHankakuAlnum) にします。

ToHankakuAlnum というのが、「すべての数字を全角にする」という意味を持つ部分です。

ただし、これはあくまでも秀丸エディタ独自の正規表現であり、汎用性はありません。

08:47 午前 翻訳者のPCスキル |

はてなブックマークに追加

« # 新・午前十時の映画祭 ~ 『大脱走』 | トップページ | # 訃報 - 夏八木勲 »

トラックバック


この記事へのトラックバック一覧です: # 翻訳者のための正規表現~勉強会の解説、その4:

コメント

この記事へのコメントは終了しました。