正規表現の検索・置換例その3 キャプチャを使用した置換①

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
9月になりました。急に涼しくなったような気がします。皆さまいかがお過ごしでしょうか。

 

今回は、キャプチャを使用した置換方法についてご紹介します。以前にお話しした通り、「( )」と「\1」「\2」などを組み合わせたキャプチャはTrados上では機能しないのですが、置換の場合は「( )」と「$1」「$2」などとを組み合わせてTrados上で使うことができます。

 

実際の置換例について、以下の通りご紹介いたします。Microsoft Wordのワイルドカードでご紹介したものと同じ例について、正規表現を使用して説明して参ります。

 

<例>
・「Mr. Tanaka」「Mr. Johnson」「Mr. Chen」などのMr.+人名をまとめて「Tanaka-san」「Johnson-san」「Chen-san」に変換したい
検索する文字列:Mr. ([a-zA-Z]+)
置換する文字列:$1-san
⇒検索する文字列の人名部分を「[a-zA-Z]+」(1文字以上の英字)として表記し、それを「( )」で括ります。置換後の文字列に「$1」として人名部分をそのまま反映し、後ろに「-san」とつければ上記のような置換が可能です。

 

・「Honyaku Taro」「Honyaku Hanako」のようなローマ字表記の人名をまとめて「Taro Honyaku」「Hanako Honyaku」に変換したい
検索する文字列:([a-zA-Z]+) ([a-zA-Z]+)
置換する文字列:$2 $1 ※「$2」と「$1」の間には半角スペースが入っています。
⇒ローマ字表記の人名を「[a-zA-Z]+ [a-zA-Z]+」というように表し、最初のまとまりと最後のまとまりにそれぞれ「( )」をつけ、置換後には順序を逆にすることで上記のような置換が可能です。ただし、このやり方では人名以外の連続する2単語も置換対象となりますのでご注意ください。

 

・「20170415」「20160320」「20150207」のような複数の文字列をまとめて「15-04-2017」「20-03-2016」「07-02-2015」に変換したい
検索する文字列:([0-9]{4})([0-9]{2})([0-9]{2})
置換する文字列:$3-$2-$1
⇒「( )」の出現順として、年の部分(最初の4桁)が1番目、月(次の2桁)が2番目、日(最後の2桁)が3番目なので、置換後は逆にして、さらに間にハイフンを入力することで上記のような置換が可能です。

 

いかがでしたでしょうか? ワイルドカードと同様に、Trados上で正規表現のキャプチャを使用した置換ができることがおわかりになれば幸いです。
次回も、キャプチャを使用した置換例について紹介したいと思います。