テキストの整理をするときに便利なのが、正規表現。
はじめて「正規表現」という言葉を聞いた時には「?」でしたが、使ってみると相当便利。
もともとは、JGAWKのスクリプトをマスターしたくて調べていったことだったんですが、途中でSedMacに出会ってしまい、SedMacでいろんなテキスト処理をするように…。しかし、SedMacでは処理できる範囲が限られていますので、ちょっと背伸びをしてMacJPerlを使うようになりました。
正規表現の書式がちょっと違う部分もありましたが、それほど迷うことなく移行できました。
話がそれましたが、正規表現で何が便利なのかというと…。
DTP作業でよくあるテキスト処理といえば、スペースの削除とか、タブに置換したり、不要記号の削除など、骨の折れる作業。最近のDTPアプリ(特にAdobe系)は文字組設定が豊富なので、段落先頭のスペースは削除して組む方が便利だったりします。行頭の「「」などの扱いも、出版物によって違いますし。
例えば段落のはじめにあるスペースだけを削除したい…。
検索文字 ^[ ] 【^】と【[】と【全角スペース】と【]】
置換文字
として、一括置換すればすべて削除されます。
※「^」は「行頭の」という意味の記号です。「[」と「]」でくくられた内容は、複数指定することができます。
もしかすると全角スペース1文字に見えて、半角スペースが2文字隠れているかもしれません。
検索文字 ^[ ] * 【^】と【[】と【半角スペース】と【全角スペース】と【]】と【半角スペース】と【*】
置換文字
として、一括置換すればすべて削除されます。
※上記解説から、さらに「 *」というのが追加されています。これはちょっとわかりにくいのですが、直前の文字、0文回以上の繰り返しという意味です。平たくいうと「あってもなかってもいい」というのが近いと思います。
と、この手の仕事をされる方、特に編集をされる場合には覚えておくと、本来の自分の作業に集中できます。
もちろん、上記の例はごく一部の使用例ですし、テキストベースであれば、HTMLでもPHPでもCGIでも使用することが可能です。
裏技的な使い方としては、イラストレータ形式(拡張子がAI)のファイル。
このファイル、最近のバージョンはPDF形式で圧縮がかかったりしていますが、V8あたりまでは標準的にテキスト形式なので、テキストエディタで開いて編集することも可能です。現在もカスタムカラー(特色)を一気にスミ版へ置換したり、特定のプロセスカラーへ置き換えたりするのに使用しています。
OS9時代は、YooEDITが「正規表現による置換検索」をサポートしていました。Jedit2はシェアウェアでしたし、正規表現による検索はできましたが、置換ができなかったと記憶しています。AppleScriptを使用すれば、できたと思いますが…。
Mac OS X へ移行を始めた頃は、テキストエディタを片っ端から試してみました。正規表現による検索ができるものはたくさんありましたが、置換までできるテキストエディタはなかなかありませんでした。
そこで、ようやく発見したのが、「CotEditor」でした。誰でもフリーで使用することが可能です。
正規表現のエンジンは、OgreKitというフレームワークを使用されているようで、これまた強力です。
しかも、AppleScriptでコントロールが可能なので、ドロップレットを作成すればOS9で使用してきたようなMacJPerlライクな使い方ができるわけです。
もちろんドロップレットでなくても、CotEditorにはスクリプトメニューが装備されているので、そこからスクリプトを実行することもできます。マウスの右ボタンをクリックすれば、コンテクストメニューにも表示されます。かなり便利。
現在、JeditもOgreKitを組み込まれて、正規表現による検索置換に対応しているようですが、やはりシェアウェアですので…(笑)。