日本翻訳連盟(JTF)

翻訳の手作業を効率化する「正規表現」

第6回:いろいろな特殊文字と置換の基本

翻訳者、JTF副会長 高橋 聡

まず、前回の宿題の答え合わせからですね。

 インター?フェ[イー]?ス

こう指定すると、interfaceの訳語で考えられる表記のゆれ「インターフェース」「インタフェース」「インターフェイス」「インタフェイス」「インターフェス」「インタフェス」の6通りをすべて検索できるという話でした。以下に解説します。

まず、最初の長音(ー)の後ろに疑問符(?)があります。「直前のパターンが0回または1回」という指定ですから、長音があってもなくてもいいという意味になり、「インタ」にも「インター」にもヒットします。そのすぐ後ろは「フェ」で、これはすべての表記に共通なのでカタカナをそのまま指定するだけです。ここまでで、

 インタフェ
 インターフェ

のどちらにもヒットする形になりました。その次は、大カッコを使った[イー]という表現。大カッコは「個別または範囲で指定したうち任意の1文字」という指定なので、「イ」または長音(ー)にヒットします。しかも、その直後にまた疑問符(?)があるので、大カッコ表現とあわせると、「イ」または長音(ー)があってもなくてもいい、という意味になります。最後はカタカナの「ス」だけ。ということで、すべてを合わせると、

 インタフェス ……インタ + 長音0回 + フェ + 「イ」または長音が0回 + ス
 インタフェイス ……インタ + 長音0回 + フェ + 「イ」が1回 + ス
 インタフェース ……インタ + 長音0回 + フェ + 長音が1回 + ス
 インターフェス ……インタ + 長音1回 + フェ + 「イ」または長音が0回 + ス
 インターフェイス ……インタ + 長音1回 + フェ + 「イ」が1回 + ス
 インターフェース ……インタ + 長音1回 + フェ + 長音が1回 + ス

となったわけです。

正規表現に使う表現パターンは、以上でほぼ網羅しました。連載第1回で書いたように、ルールはそれほど多くありません。そのルールを使ってどんな検索ができるかは、使う人の応用力しだいになってきます。実は、もっと高度な機能もあるのですが、そちらはかなり「発展編」的な使い方になるので、もしこの連載企画の第2弾があるようなら、そのときご紹介することにします(笑)。

さて、最後にまとめて紹介しておかなければならないのが、円記号(¥)を使ったいろいろな指定です。機能は、大きくいうと2種類あります。

 1. いろいろな特殊文字(普通の英数字では表せない文字)を表す
 2. 正規表現に使う文字そのものを検索文字に指定する(エスケープという)

です。主な特殊文字を以下にあげます(連載第1回の表も参照)。

 ¥n …… 改行文字(秀丸エディタ上では
 ¥t …… タブ文字(秀丸エディタ上では
 ¥s …… 空白文字(実際には、半角スペース、タブ文字、改行にヒット)
 ¥d …… 数字すべて。[0-9] と同じ
 ¥c …… 英数字とアンダースコア。[a-zA-Z0-9_] と同じ
 ¥< …… 英単語の始まり
 ¥> …… 英単語の終わり

ほかにもありますが、詳しくは秀丸エディタのヘルプでも探せます。いちばんよく使うのは、改行文字(¥n)でしょう。※改行、タブ、空白など(編集記号といいます)は、秀丸エディタの設定によっては、表示されていないことがあるかもしれません。その場合は、[その他]メニューから[ファイルタイプ別の設定]を開き、この辺の設定を確認してみてください。

ここからは、翻訳していてどんな作業をするかによって差が出てくるので、人によっては必要のない話になるかもしれません。たとえば、ウェブブラウザーで表示しているページをコピペすると不要な空白(半角)が入っていることがあるので、それをまとめて削除したいことがあります(置換機能を使う。後述)。あるいは、Excel形式の用語集を指定されて、それをテキストファイルに変換したときなどにムダな改行が入ることがあり、不要な改行をなくす(改行の数をそろえる)とか、逆にふつうに続いている文章をすべて句点の後ろで改行する、といった調整に使うことがよくあります。

たとえば、

左の図のように、すべての行間に1行ずつ空の行が入っているファイルがあって、これを右の図のように改行なしにしたいとします。いま、「改行なし」と書きましたが、実はどの行も終わりは改行文字ですよね。第3回で書いたように、改行文字で終わっている1行が「論理行」です。左の図のように、空の行が1行ずつ入っているというのは、つまり「論理行ごとにもともと存在している改行文字のあとにもうひとつ改行文字がある」という状態です。¥n が改行文字ひとつに当たるので、¥n¥n と指定すると「もともとの改行文字と空の行の改行文字」つまり改行文字2つ分に続けてヒットします。そこから、空の行なしにするということは、改行文字 ¥n を1つにすればいいわけです。

ということで、ここで初めて「置換」機能を使います。Ctrl+Rのショートカットで[置換]ダイアログが開きます。[検索]に ¥n¥n、[置換]に ¥n と入力して、[正規表現]オプションをチェックして[全置換]を押すと、上の図の左の状態が右の状態になります。

ここまでずっと検索の話だけしてきましたが、置換まで使いこなせるようになると、正規表現を使った検索の本当のスゴさがわかってきます。置換機能そのものもいろいろあって、上でやったように[全置換]で一気に置換するのではなく、[下検索]でひとつずつ確認しながら置換したりもできます。

あ、そうそう。置換に関係して大切な話がひとつあります。それは、「置換に失敗はつきもの」ということです。第2回でも書きましたが、正規表現を使った検索は、少しでも間違えると自分の意図どおりになりません。つまり、正規表現を使った置換も、やはり想定外の結果になることがあるということです。ですから、いきなり[全置換]してしまうのではなく、まず検索を実行して、想定どおりにヒットするかどうかを必ず確認してください。といっても、もし置換に失敗しても、やり直しは簡単です。[編集]→[やり直し]を使うか、ショートカットならCtrl+Zです。しかも、普通のアプリケーションでCtrl+Zを使うと、編集操作をひとつひとつさかのぼって取り消していきますが、秀丸エディタなら、ひとつずつでも、直前に実行した全置換まとめてでも取り消すことができます。どのくらいまでさかのぼれるかは、使っているPCのメモリーしだいなのですが、実質的には通常の作業に困らないくらいです。

次回の最終回では、魔法のような置換をご紹介します。それまでに、ぜひ過去の連載を復習しておきましょう。

(次回につづく)

第1回:正規表現とは何か

第2回:任意の文字と繰り返しの指定

第3回:最長一致と最短一致

第4回:個別指定と範囲指定、繰り返しの範囲指定

第5回:パターンの否定と論理和(OR)、行頭と行末

○執筆者プロフィール

高橋 聡(たかはし あきら)

CG以前の特撮と帽子と辞書をこよなく愛する実務翻訳者。フェロー・アカデミー講師。日本翻訳連盟(JTF)理事・副会長。学習塾講師と雑多翻訳の二足のわらじ生活と、ローカライズ系翻訳会社の社内翻訳者生活を経たのち、2007年にフリーランスに。現在はIT・マーケティングなどの翻訳を手がけており、翻訳フォーラム(fhonyaku.jp)などの翻訳者グループで情報発信も行う。訳書に『機械翻訳:歴史・技術・産業』(森北出版)、『現代暗号技術入門』『イーサリアム 若き天才が示す暗号資産の真実と未来』(ともに日経BP)など。著書に『翻訳者のための超時短パソコンスキル大全』(KADOKAWA)、共著に『翻訳のレッスン』(講談社)がある。

共有