翻訳・機械翻訳・ポストエディットなど翻訳に関連する情報を発信
B-224_CATツールで使える正規表現・第2回

CATツールで使える正規表現・第2回

この連載では、翻訳の現場で役に立つ正規表現を取り上げながら、memoQやSDL Trados StudioのようなCATツール※で利用できる正規表現について解説しています。※ CATツールとは、翻訳支援(Computer Assisted Translation)ツールの略称で、翻訳メモリや用語集を使って翻訳業務を効率化するためのツールを指します。

前回の記事では、HTMLタグを検索するために、任意の1文字を表す「.」と1回以上の繰り返しを表す「+」を使って<.+?>という正規表現を作りました。しかし、この正規表現は、HTMLタグでない文字列にもヒットしてしまいます。今回の記事では、この正規表現を改善してみましょう。

目次[非表示]

  1. 1.あるかないか「?」
  2. 2.あれかこれか「|」
  3. 3.本当にいくつでも「*」
  4. 4.「.」に注意
  5. 5.今回のまとめと次回の予告
  6. 6.川村インターナショナルの翻訳サービス

あるかないか「?」

HTMLタグには開始タグと終了タグがあり、たとえばp要素なら、開始タグが「

」、終了タグが「

」となります。つまり、「<」のあとは、「/」があるかもしれないし、ないかもしれない、言い換えると「/」が0回または1回繰り返します。この 「0回または1回の繰り返し」は、メタ文字「?」で表すことができます

前回の記事で用いた「+?」のように、「?」の直前が繰り返しの回数を表す「量指定子(quantifier)」の場合、「?」は最長一致を最短一致に変えます。それ以外の場合、「?」自身が量指定子となり、その直前の文字(またはグループ)の0回または1回の繰り返しを表します。

したがって、 とすれば、「<」のあとに「/」があるかもしれないしないかもしれない文字列、つまり「<」または「


あれかこれか「|」

そのあとは要素名が続きますが、まずは話を簡単にするために、「a」「em」「strong」の3種のHTML要素のタグのみを検索したいとします。すると、 のあとに「aまたはemまたはstrong」を表す正規表現を続けることになります。

この「または」を表すメタ文字が「|」です。つまり、a|em|strongという正規表現が「a」または「em」または「strong」を表します。そこで、 という正規表現で「」や「」などを検索できます。

なお、「( )」は、ご想像の通り、正規表現を一まとめにグループ化するものです。「( )」をつけずに とすると、 またはemまたはstrong>で検索することになってしまいます。

実は「( )」にはもう1つ重要な機能があるのですが、それは次回以降の記事で紹介します。



本当にいくつでも「*」

さて、 は「」にはマッチしますが「」にはマッチしません。「 」の間にいろいろな文字がはさまっているパターンも検索できるようにしましょう。

前回の記事と同様に「いろいろな文字」を「.」で表すとして、今回は「+」は使えません。「+」は1回以上の繰り返しですが、今回は任意の文字が0文字かもしれないからです。そんなときは、0回以上の繰り返しを表す「*」を使います。

前回の記事で見たように、ゴー+ルは「ゴール」「ゴーール」「ゴーーール」などにマッチしますが、ゴー*ルとすると、それらに加えて「ゴル」にもマッチします。

「*」も、「+」と同様、貪欲です。怠惰にするには「?」を続けます。そこで、 という正規表現が、a要素またはem要素またはstrong要素の開始タグまたは終了タグにマッチします。



「.」に注意

ところが、この正規表現は、3種のHTML要素のタグには確かにマッチするのですが、別のHTML要素、たとえばaddress要素のタグにもマッチしてしまいます。「

」も、「 」で終わるからです。

このように、任意の1文字「.」が思いがけない文字にマッチして、想定外の検索結果が得られることがあります。これを防ぐには、安易に「.」に頼らずに、パターンをできるだけ絞り込むとよいでしょう。「.」自身を検索するときは\.とすることを忘れないでください。


では、先ほどの正規表現を修正してみましょう。


HTMLタグをよく見ると、要素名の後は、すぐに「>」でタグが終了するか、スペースがあっていろいろな文字があって「>」で終了するかのどちらかです。言い換えると、要素名の後に、「スペース文字+任意の文字列」があったりなかったりして、「>」で終わります。

したがって、a要素またはem要素またはstrong要素の開始タグまたは終了タグにマッチする正規表現は となります。「.*?」の直前に半角スペースがあることに注意してください。


今回のまとめと次回の予告

今回は、0回または1回の繰り返しを表す「?」、0回以上の繰り返しを表す「*」、「または」を表す「|」を使って、a要素またはem要素またはstrong要素の開始タグまたは終了タグにマッチする正規表現を作りました。

実際には、検索するHTML要素の数は3種よりずっと多いでしょうが、それでも数に限りがあります。そこで、要素名を「|」を使って並べていけば、特定のHTMLタグにマッチする正規表現を作ることができます。

そうはいっても、多数のHTML要素名を並べるのは大変ですし、要素名が大文字で書かれることもあります。次回は別の方法でHTMLタグを検索してみましょう。


川村インターナショナルの翻訳サービス

川村インターナショナルでは、AIやMTの活用、プロセスの自動化やデジタル化による翻訳業務効率化ソリューションをご提案します。翻訳支援ツールの導入を検討している、自社の翻訳資産を活用して機械翻訳エンジンをカスタマイズしたい、など翻訳業務の効率化をご検討中の方は、ぜひお気軽にお問い合わせください
​​​​​​​

また、CATツールで使える正規表現のほか、川村インターナショナルでは業務効率化に役立つ「ツール・業務効率化」関連のブログ記事を公開しています。
翻訳を効率的に行うためのCATツールの解説や、日常業務に欠かせないWindowsやMicrosoft Officeアプリの意外と知られていない小ワザなど、関連記事のうちアクセス数の多い上位10記事をまとめました。

「ツールと業務効率化」資料ダウンロードフォームはこちら


KIマーケティングチーム

KIマーケティングチーム

川村インターナショナルWebマーケティングチームです。開催予定セミナーやイベントの告知、ブログ運営などを担当しています。

この記事がお役に立ったらシェアをお願いします!

ホワイトペーパーはこちら

世界一幸せな国 – デンマークの言語について | 翻訳会社川村インターナショナル

「北欧への玄関口」である首都コペンハーゲンを持つデンマークは、社会保障の充実、経済格差が少ないこと、政府に対する信頼度の高さから、最も幸せな国と言われています。そんなデンマークで使用される言語をご紹介します。

【memoQ/Trados】過去の翻訳を活用して翻訳を効率アップ!翻訳メモリの作成方法と導入のメリット | 翻訳会社川村インターナショナル

多言語展開の課題となる翻訳業務の効率化と品質管理の両立に対し、翻訳メモリの導入メリット、memoQとTradosという2大翻訳支援ツール(CATツール)における既存のファイルから翻訳メモリを作成する方法とそれぞれの特徴をご紹介します。


新着記事

世界一幸せな国 – デンマークの言語について | 翻訳会社川村インターナショナル
【memoQ/Trados】過去の翻訳を活用して翻訳を効率アップ!翻訳メモリの作成方法と導入のメリット | 翻訳会社川村インターナショナル
好みの一杯が伝わる!コーヒーのこだわりを英語で表現 | 翻訳会社川村インターナショナル
Illustrator・動画・字幕翻訳に最適!ローカライズで役立つXTMの便利機能まとめ | 翻訳会社川村インターナショナル
テスト記事

テスト記事

2025年09月19日

タグ