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

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
明日から5連休です。台風が近づいているようですが、皆さまのご予定はいかがでしょうか。

 

今回も、引き続きキャプチャを使用した置換方法についてお話しします。今回は表記ゆれのチェック兼一括置換の例をご紹介したいと思います。

 

<例>
・「行う」「行なう」が混在している文書内で「行なう」を「行う」に統一する。語尾変化も考慮する。
検索する文字列:行([わいうえおっ])
置換する文字列:行な$1
⇒単純に「行う」を「行なう」に置換するだけであれば検索と置換の文字列にそのままを入力すれば良いですが、語尾変化も考慮に入れた置換を行いたい場合はこのようにすると良いでしょう。ただし、「行って」が対象テキストのときに「おこなって」「いって」の両方が置換対象になりますので、誤って「いって」のほうが変わらないようにご注意ください。

 

・「コーディネータ」と「コーディネーター」が混在している文書内で「コーディネータ」のみを「コーディネーター」に一括置換する。
検索する文字列:コーディネータ([^ー])
置換する文字列:コーディネーター$1
⇒これはMS Wordのワイルドカードのときにもご紹介した例ですが、正規表現でも同様の置換が可能です。音引きがつかない「コーディネータ」のほうに統一するのであれば、音引きつきのほうから音引きを削除するだけで良いかと思いますが、音引きがつくほうに統一する場合は、単に検索する文字列を「コーディネータ」にして、置換する文字列を「コーディネーター」にすると、すでに音引きがついている「コーディネーター」が「コーディネーターー」に置換されることになります(意図的にこのようにした上で音引き2つを1つに置換するという2段階の方法もあります)。
ここでは、「コーディネータ」の後ろに「[^ー]」を入れ、それを「( )」で括り、「コーディネータ」と音引き以外の1文字がつく文字列を検索し、置換では「コーディネータ」を「コーディネーター」へと変えた上で、そのあとに「( )」で括った文字が入力されるようにします。

 

・「鈴木様」「鈴木さん」が混在している文書で、それらをすべて「鈴木氏」に統一する。
検索する文字列:鈴木(様|さん)
置換する文字列:鈴木氏
⇒これは、キャプチャを使用しない例です。ワイルドカードで同様の例を紹介した際に、検索する文字列を「鈴木[様さん]{1,2}」、置換する文字列を「鈴木氏」としましたが、正規表現の場合は「( | )」を使用してこのように置換することができます。ただし、やはり「鈴木様式」などが混在していると「鈴木様」の部分が「鈴木氏」に置換されてしまいますので、その点に注意して置換するようにしてください。

 

いかがでしたでしょうか? 表記ゆれの検索や置換は非常に面倒なこともありますが、その際にキャプチャを使うと作業が効率的にできることがおわかりいただけたら幸いです。

次回は、数字関連の置換例についてご紹介します。