この「講座」は、@nifty「翻訳フォーラム・アドバンスメント館(FTRAN2)」の第13会議室「翻訳JOB応援会議室」にて連載されているものを、著作者の許可を得てウェブ上に転載したものです。

この「講座」内容に関連する質疑応答は、@nifty「翻訳フォーラム・アドバンスメント館(FTRAN2)」の第13会議室「翻訳JOB応援会議室」にて受け付けております。

講座内容についてのご質問がある方は、どうぞ、上記会議室においでください。

6.3 高効率化(続)

★正規表現の活用

正規表現も便利です。マクロで処理しようとするとかなり複雑なマクロを書かなければならない処理が、正規表現を活用すると一括置換一発で行えたりする場合もあります。

たとえば、英日翻訳で、数字と単位の間の半角スペースをとりたいとします。つまり、英文中の「50 ml」や「100 MHz」を「50ml」、「100MHz」とするわけです。

こういう処理は、タグ付の正規表現が使えれば一括置換で処理できます。たとえば、秀丸のタグ付正規置換では、「[0-9,\.]+\f +\f[a-zA-Z][a-zA-Z/0-9]*」→「\0\2」というタグ付き正規表現による置換を行えば、ほとんどのものが一括置換できるはずです。

ちなみに、「[0-9,\.]+」は、半角数字または「,」、「.」が一つ以上繰り返されている部分という意味です(つまり、少数や3桁ごとのカンマつきの数字がヒットする)。また、「[a-zA-Z][a-zA-Z/0-9]*」は、最初に半角英字がきていて、その後に半角英字または半角数字、「/」が0回以上繰り返されている部分という意味です。つまり、全体としては、数字(小数、カンマ付きでもよい)の後ろに半角スペースがあり(複数可)、その後ろに、最初が半角英字の英数字と/で構成されているという一連の文字がヒットすることになります。\fはタグで、置換文字列側で、最初の\fよりも前の部分を\0、\fから\fまでを\1と表現することができます。perlなんかでも、似たような表現方法で一括置換ができます(というか、perlの正規表現の方がはるかに強力です)。

最近のエディタなどは、ほとんどが、正規表現による検索・置換が可能なはずです。

正規表現には、基本的な表現と便利に使うために拡張された表現があります。基本的な表現は、どのエディタや言語(perlなど)でも共通ですが、拡張部分は異なることがあります(使える表現と使えない表現があったり、特殊な表現を定めてあったりします)。各エディタで使える表現は、そのエディタのヘルプに記載されているはずです。確認してみてください。

確認してみてくれと書いた後でなんなのですが、正規表現とはどういうものであるかを知らない人がヘルプに記載されている正規表現の説明を読んでも、おそらく何が書かれているのか理解できないだろうと思います。まずは、関連の入門書を読んで、正規表現とはなんであるか、正規表現で何ができるのかを理解する必要があります。

前のページ 次のページ

「二足の草鞋」目次トップページに戻る