皆さま、こんにちは。ホンヤク社の成田です。
5月も終わりです。梅雨が近づくのには個人的にあまり気が乗らないのですが。皆さまはいかがお過ごしでしょうか。
本日は、「@」というワイルドカードをご紹介します。
@
「直前文字の1回以上の繰り返し」を表すワイルドカードです。このワイルドカードの1つ前の文字が1回または複数回繰り返されているテキストをまとめて検索したいときに使用すると便利です。
<使用例>
10@
⇒ 「10」「100」「10000」「10000000000000」など、「1」の後ろに「0」が1回以上繰り返されているテキストがヒットします。
gooo@gle
⇒ 正しい表記は「google」なのに、誤って「o」を3回以上入力してしまったものが文書内にあるのでは、というときにこのように検索すると見つけられます。
<半角スペース><半角スペース>@ ※「@」の前に半角スペースが2つあるという意味です
⇒ 誤ってダブルスペースを入力してしまったのではないか、というときのチェックができます。ダブルスペースだけをヒットさせたいのであれば半角スペース2つでいいのですが、3つ以上の連続スペースも含めて検索したい場合には「@」を使うと便利です。
なお、上記のような検索をして「gooogle」やダブルスペースなどが実際に検出された際には、同時に修正を行いたいのではと思います。ヒットした数が少量であれば手作業での修正で済むかもしれませんが、ある程度の量であれば一括置換したいものです。また、手作業によるヒューマンエラーを防ぐためにも自動処理のほうが良いかと思います。
ところが、この「@」を使った一括置換では、目的に沿った置換ができるときとできないときがあります。少しややこしい話ですが、「@」は検索条件に合致する最短のテキストを優先的に検出するため、たとえばトリプルスペースが文書内に入っていたときに上記の「<半角スペース><半角スペース>@」で検索をすると、
が最初にヒットし、また検索ボタンを押すと
が次にヒットし、ダブルスペースを2つ検出するような形になってしまいます。
そのため、この場合では一括置換機能を使っても一度ではシングルスペースに置き換わりません。
この対処法について、次回から扱う「{ }」と数字の組み合わせ(直前の文字を任意の数だけ繰り返し)でお話ししたいと思います。