「【Word】ワイルドカードの学び方:書ける前に読めるようにする」に続く記事です。この記事では、ワイルドカード検索の事例を紹介します。
第1章や第123章を探す
ワイルドカード検索の最初の例として、「第1章」や「第123章」を探してみましょう。どのようにしますか?今回は「第」と「章」の間に「数字」が使われている箇所を探します。この概念を正規表現で記述すると以下のようになります。
検索式:第[0-90-9]{1,}章
上記の検索式を使って実際にワイルドカード検索をしてみます。これまでに説明した方法で[検索と置換]ダイアログボックスで[検索]タブを開き、[オプション]を表示し[ワイルドカードを使用する]をオンにします。[検索する文字列]欄に検索式を入力すれば、[次を検索]ボタンで通常の検索と同じように検索できます。また、これまでに紹介した便利機能である[検索された項目の強調表示]や[検索する場所]も使えますので、検索対象を目視で確認できます。図のように、全角数字と半角数字の章番号を見つけられます。
なお、ナビゲーションウィンドウでもワイルドカード検索ができますが、ワイルドカードを用いた置換との連動や条件設定のしやすさを考慮して、本書では[検索と置換]ダイアログボックスを用いた方法を紹介します。もちろん、慣れてきたらナビゲーションウィンドウでオプションを設定してワイルドカード検索をしてみてください。
[検索と置換]ダイアログボックスの使い方については、以下のページで関連記事を紹介しています。時々のぞいてみてください。
ワイルドカード検索での注意点
正規表現で用いる角括弧や波括弧、ハイフンやコンマなど、すべて半角で記述します。これらはワイルドカード検索をするための「ワイルドカード文字」と呼ばれる「検索条件の指定に用いられる特殊な文字」です。全角で記述するとワイルドカード文字と認識されないため、ワイルドカード検索ができません。
「数字」の概念を正規表現で記述する
私たちが「数字」と言うときには、多くの場合、1桁から数桁の数字を意味しており、その桁数の上限を意識していません。また、全角数字と半角数字の両方も特に区別せずにどちらも「数字」と呼んでいます。なので、私たちが持つ「数字」の概念を、Wordに正しく伝えて検索をする必要があります。上記の章番号の検索では、数字を以下のように記述しました。
検索式:[0-90-9]{1,}
では、全角数字や半角数字を探す場合と比較して、記述ルールを考えてみましょう。
検索対象 | 検索式 |
半角数字と全角数字 | [0-90-9]{1,} |
全角数字 | [0-9]{1,} |
半角数字 | [0-9]{1,} |
勘がよい人やクイズが得意な方は、上記3つの記述から規則性を何かしら見出せたのではないでしょうか。まず、半角の角括弧である [ と ] は「角括弧内の任意の1文字」を意味します。[0123456789]であれば、任意の半角数字1文字を意味します。[0-9]のように0と9をハイフンでつなぐと連続した文字の範囲を示すことができ、0~9の意味になります。このようなわけで、[0-9]は[0123456789]と全く同じことを示します。
上記例のように、ワイルドカード検索では全角と半角を区別し、さらにアルファベットの大文字と小文字も区別するため、検索対象の文字列を正しく検索できるよう注意してください。
なお、角括弧内には、ハイフンによる範囲指定を複数記述できます。この法則を利用すればシンプルな記述になります。たとえば、半角数字と全角数字の任意の1文字を意味する[01234567890123456789]は、[0-90-9]と記述できます。
意味を予測してみる
では、毎回使われている {1,} は何を意味するのでしょうか?これは、「1回以上繰り返す」という意味です。直前の記述(定義)を1回以上繰り返します。
この記述を用いると、1桁以上の数字を記述できます。
たとえば、半角数字の[0-9]{1,}であれば、任意の半角数字が1回以上繰り返されている記述を検索できます。この記述を探してヒットする箇所は、私たちが意味する「半角数字」ということです。
以下の記述はどうでしょうか。改めて以下を眺めると見えてくるものがありますね。
検索式:[0-90-9]{1,}
この任意の数字を用いて章番号を探す場合には、以下のように書くのです。
検索式:第[0-90-9]{1,}章
少しわかったようか気分になりませんか。