【第7回】調査:正規表現の使い方

※本連載は、弊社刊『アプリ翻訳実践入門』の一部をコンパクトに再編集したものです。

 

キーワード:正規表現、特殊文字、JTF日本語スタイルチェッカー

テキスト検索に必要な正規表現

翻訳者にはさまざまな調査スキル(第2回参照)が求められます。前回の第6回では検索エンジンの使い方を解説しました。

今回は「正規表現」を取り上げます。指定のテキストがドキュメント内にあるか調査したり、それを一括して置換したりするときに便利です。多くのテキスト・エディターや翻訳支援ツールは正規表現を使った検索に対応しています。たとえば「JTF日本語スタイルチェッカー」には正規表現に対応(置換除く)しており、ウェブ上で気軽に試せます。

正規表現には何種類か特殊文字(メタキャラクター)があり、それを活用することでさまざまな検索ができます。

1つの文字を表す特殊文字

任意の1文字を表すのは「.」(ピリオド)です。たとえば「.ール」という正規表現でドキュメントを検索すると、「ツール」、「ルール」、「ボール」などにマッチします。

1つの文字を表す変わった書き方もあります。たとえば「\d」とすると任意の数字1文字(0〜9)にマッチします。たとえば「第\d番」で検索すると「第1番」や「第5番」にマッチするわけです。さらに「\s」はスペースなどの空白文字、「\n」は改行を示します。

文字の集まりを表す特殊文字

続いて、文字の集まりを表すものを紹介します。まずは半角の角かっこ「[ ]」です。これで囲った複数の文字のうち、いずれか1文字にマッチします。たとえば「[赤青黄]色」で検索すると「赤色」、「青色」、「黄色」にマッチします。

角かっこ内でハイフンを使って範囲を示すと、その範囲にマッチします。もし「[2-5]」とした場合、2 〜5 の数字1文字にマッチします。「[A-Za-z@]」のように範囲と文字を複数並べても検索可能です。

文字の集まりを表す特殊文字を表Aにまとめます。

特殊文字 説明
[○○○] 角かっこ内のいずれか1文字にマッチ [赤青黄]色
[^○○○] 角かっこ内の文字以外の1文字にマッチ [^赤黃]色
[○-○] 角かっこ内のハイフン前後の「範囲」にマッチ [2-5]、[A-Za-z@]
○○○|●●● 縦棒前後の正規表現いずれかにマッチ。丸かっこでグループ化可能 (赤い|青い|緑の)車

表A(『アプリ翻訳実践入門』p. 67より転載)

繰り返しを表す特殊文字

たとえば何桁か連続する数字を検索したいとき、「繰り返し」を表す特殊文字を使うと便利です。

直前にある正規表現と1回以上マッチさせたいときは「+」(プラス記号)を使います。たとえば「あ」という通常文字のすぐ後ろに置いて「あ+」と書くと、「あ」や「あああああ」にマッチします。任意の一文字を表すピリオドにプラス記号を付けて「.+」とすると、「abc」や「あいうえお」などにマッチします。また範囲を示す「[0-9]」にプラス記号を付けて「[0-9]+」とすると、数字の繰り返しにマッチさせられます。たとえば「123」や「567890」です。

繰り返しを表す特殊文字を表Bにまとめてみます。

特殊文字 説明
+ 直前の正規表現と1回以上マッチ あ+、[0-9]+
* 直前の正規表現と0回以上マッチ 教室[A-Z]*です
? 直前の正規表現と0回または1 回マッチ 彼女?は
{n} 直前の正規表現の繰り返しn回とマッチ [A-Z]{3}
{n,m} 直前の正規表現の繰り返しn回以上m回以下とマッチ [0-9]{2,4}
{n,} 直前の正規表現の繰り返しn回以上とマッチ \d{3,}

表B(『アプリ翻訳実践入門』p. 68より転載)

その他注意したいこと

上記のように、「.」や「+」には特殊な意味があります。そのため「.」や「+」それ自体を通常文字として検索したい場合、「\+」のように直前にバックスラッシュ(パソコンの環境によっては円マーク)を置きます。通常文字として検索することは「エスケープ」と呼ばれます。

また、本記事では扱いませんが、繰り返しを表す特殊文字(+など)を使うときは「最長一致」と「最短一致」についても考慮が必要なケースがあります。

まとめ

  • 「正規表現」を使うと、指定のテキストがドキュメント内にあるか調査したり、それを一括して置換したりできます。
  • 正規表現には何種類か特殊文字があり、1つの文字、文字の集まり、繰り返しなどを表します。

本記事の元になっている書籍『アプリ翻訳実践入門』の詳細および購入についてはこちらのページをご覧ください。