※本連載は、弊社刊『アプリ翻訳実践入門』の一部をコンパクトに再編集したものです。
キーワード:正規表現、特殊文字、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つの文字、文字の集まり、繰り返しなどを表します。
本記事の元になっている書籍『アプリ翻訳実践入門』の詳細および購入についてはこちらのページをご覧ください。