【Word】ゼロ文字以上の「スペース」を探すための検索式(1)

2011年3月17日

3月26日(土)の名古屋でのワードマクロ勉強会 では、ワイルドカードの置換・検索を学びます。

Wordそのもの、またはワードマクロの楽しさは、ワイルドカードの理解と比例します!!

さて、ワイルドカードの置換・検索を学びはじめると気がつくのですが、ゼロ文字以上の特定の文字列を探す検索式がないのですね。

たとえば、「ジャッキーチェン」を探す場合。

記載には多少の揺れがありまして、

  • 「ジャッキーチェン」
  • 「ジャッキー□チェン」 (□は全角スペース)
  • 「ジャッキー_チェン」 (_は半角スペース)
  • 「ジャッキー□_チェン」
  • 「ジャッキー□□チェン」

などがあるとしましょう。

これらをすべて検索するワイルドカードの検索式を考えてみましょう。

「ゼロ文字以上の任意の文字」は、「*」がありますから、よくある検索式は、以下の通り

検索する文字列: ジャッキー*チェン

[検索と置換]ダイアログボックス

これでもできますよ。

つまり、ワイルドカードの記号である「アスタリスク:*」が、ゼロ文字以上のどのような文字にも対応するので、たとえば、

  • アスタリスクがゼロ文字(何にも対応しない場合) →「ジャッキーチェン」
  • アスタリスクが全角スペース(□)1文字の場合 →「ジャッキー□チェン」

となります

ただし、アスタリスクは複数の文字列や改行マークまで含むことがあります

よって、

選択前

の文章では、以下のような選択がされてしまいます。

選択後

アスタリスクが、「のファンクラブに入りました。(改行)ジャッキー」に対応しているのですね。

なので、正確に「ジャッキーチェン」や「ジャッキー□チェン」だけに検索対象を絞り込むことができないのです。

 

あるいは、以下のような検索式もありますね。

検索する文字列: ジャッキー[_□]{1,}チェン

(上記で、_は半角スペース、□は全角スペース)

この場合には、「ジャッキーチェン」が検索対象からはずれてしまいます

なぜなら、上記では、ジャッキーとチェンの間に、1文字以上の半角・全角スペースがはいっているから。

 

というわけで、1つの検索式だけで様々なパターンを網羅するにはどうしたらいいのでしょうか。

次回、解決策を紹介します。

-Word
-,