前回の「ゼロ文字以上の「スペース」を探すための検索式(1) 」の質問の答えはわかりましたか?
これ、なかなか難しいと思いますよ。
私は、この方法を職場の友人から教えてもらいました。
言われてみれば、そのとおりだな、という考え方。ぜひ使ってみてください。
質問
以下のジャッキーチェンの記載をすべて検索できるワイルドカードの検索式は何でしょうか?
- 「ジャッキーチェン」
- 「ジャッキー□チェン」 (□は全角スペース)
- 「ジャッキー_チェン」 (_は半角スペース)
- 「ジャッキー□_チェン」
- 「ジャッキー□□チェン」
答え
検索をする文字列: ジャッキ[ー□_]{1,}チェン
(上記で、□は全角スペース、_は半角スペースです。実際に検索する場合には、置き換えてご利用ください。)
解説
ワイルドカードの基本技術で、2つあります。
[]:括弧内の任意の1文字を示します。{}:繰り返しの回数を示します。ただし1回以上。
(詳しくは、ワードマクロ勉強会で使った資料 をご覧ください。)
繰り返し回数をゼロ回以上と指定できれば、話は早いのですが、それができないので困ったなと思うわけです。
しかし、上記の通りに、必ず使う文字列とゼロ回以上繰り返したい文字列を含めて、1回以上繰り返す、という指定にします。
[ー□_]{1,}
上記の意味は、「長音符(ー)」、「全角スペース」、「半角スペース」のうち、任意の1文字以上を繰り返す、という意味です。
長音符は、かならず使用されるだろうと想定して(ジャッキーのことを、ジャッキと書く人はあまりいないと思うので)、上記の条件にしました。
そうすると、結果として、全角・半角のスペースが入る場合も入らない場合にも対応できるのですね。
追加の質問
では、以下の文字列もあわせて検索する場合には、どうしたらいいのでしょうか。
- 「ジャッキー・チェン」
- 「ジャッキ・チェン」
ジャッキーのことを、「ジャッキ」って呼ぶ人がいる場合です。
「コンピューター」を「コンピュータ」と書くのと似ていますね。
ジャッキーファンとしてはなんか、違和感がありますが(笑)。
あと、全角の中黒(・)を含みます。これ、ありがちですよね。
というわけで、次回に続きます。