実は私はワイルドカード文字の < と > の使い方をつい先日まで知りませんでした。
これまでさんざんワイルドカードの検索式を書いてきましたが、必要だと感じたことがなかったのです。
ただ、先日のIJET-29のセッションのクイズを作るためにいくつかの正規表現の書籍を読んでいて、< と > の使い方を思いつきました。
それが、今回の記事のテーマである「●桁数字を検索する」です。
ネットで調べたらすでに同じような記述はありました(当たり前ですw)。
必要になったときに調べて学んでいけばいいのですね。
今まではセミナーで「< と > は使い方を覚えなくても大丈夫です」なんて言ってしまっていましたが撤回します。< と > を覚えておくと便利です。
<目次>
このワイルドカードでできること
2桁数字を探せます。
検索式
英文の場合
検索する文字列:<[0-9]{2}>
対象箇所(参考:【Word】[検索と置換]ダイアログボックスにて複数箇所の文字列を選択する)を選択すると以下のようになります。1箇所だけ見つかりました。
和文の場合
検索する文字列:[!0-90-9][0-90-9]{2}[!0-90-9]
全角数字も半角数字もあるので上記のように書きます。
2桁の数字が数字以外の文字列で挟まれている箇所を探します。
以下のように2桁数字の前後の1文字も選択されます。
解説
英文の場合
< は単語の先頭を意味し、> は単語の末尾を意味します。
つまりこれらで挟めば「完全に一致する単語や複合語を検索する」という条件で検索できるということなのです。
ワイルドカードを使うと、一般的には「完全に一致する単語」を検索できません。単語の部分でもヒットしてしまうからです。
完全に一致するものを検索するには<と>を使えばいいのです。
ただし、完全に一致するという概念は分かち書きの英文ではあるのですが、全ての文字が連続している和文では適用されません。
そのようなわけで、以下の記述が使えるのは英文に限定されます。
検索する文字列:<[0-9]{2}>
このような理由から、赤枠で示された半角の「55」がヒットしないのです。
日本語の場合
和文の場合には2桁の数字が数字以外の文字列で挟まれている箇所を検索します。
検索する文字列:[!0-90-9][0-90-9]{2}[!0-90-9]
和文を対象にしているので、「数字」は全角数字も半角数字も含まれると解釈しました。
この検索では数字以外の文字列も選択されてしまいますがしょうがないですね。