産業翻訳者のためのパソコン活用術 > ワイルドカード検索・置換
復刻シリーズです。
2000年代前半頃の記事から復刻させていますので、現在の環境で利用する場合は、事前にテストをしてください。
------------------
たとえば、5行ごとに行番号の入った英文があるとします。
OCRのプログラムには、どこが本文で、どこが行番号なのか、区別がつきません。
すべて、「文字」として扱われます。
このため、OCRでテキスト化した文字を選択すると、下の画像のようになります。
そのままコピーしてWordやエディタなどに貼り付けると、どうなるでしょう。
行番号の数字(画像中で赤字表記)が、文の中に混じってしまいます。
その上、もともとあったはずのタブ(黄色のハイライト位置)まで、落ちてしまいました。
タブはともかくとして、数字の混入は、困りますよね。
この数字を消したいときに、どうするか。
Wordのワイルドカード機能を使えば、簡単です。
検索する文字列には、
^13<([12350]{1,2})
と入れてあります。末尾の「)」の後ろに、見えませんが半角スペースが1つあります。
置換後の文字列は、半角スペース1つです。
(上の画像は、わかりやすいようカーソル位置に縦棒が入る形で取得しましたが、文字として縦棒を入れてあるわけではありません。)
そしてオプションの「ワイルドカードを使用する」にチェックをつけて、置換を実行します。
一括置換だと行番号以外のものがあったときに怖いという人は、「次を置換」でひとつずつ目視確認した上で置換すればよいと思います。
検索する文字列の意味は、
^13 = 改行
< = 単語の先頭
([12350]{1,2}) = 半角1、2、3、5、0のうち任意の1文字または2文字
です。
使用したデータに含まれる行番号が5、10、15、20、25、30、35でしたので、このように書きました。
もし、45まであるなら、
^13([123450]{1,2})
とすればよいでしょう。
単語の先頭を示す文字は、なくても構いません。ある意味での保険的な位置付けです。
改行記号を使っているのは、OCRテキストが各行末に改行を入れてくるからです。
置換後の文字列を半角スペース1つにすることで、この改行が消えます。
行番号だけを消して改行は残したいのなら、置換後の文字列は改行コード1つ(^13)にします。