前方・後方・完全・中間一致を指定する検索書式には2通りある

「前方一致」をGoogleで検索すると、↓が最初にヒットする。
http://ew.hitachi-system.co.jp/w/E5898DE696B9E4B880E887B4.html

このIT用語辞典によると、「プログラミングや検索エンジンで利用するときには、前方一致で検索することを示すために、『検索*』などのようにキーワードの末尾に任意の文字列を表すワイルドカード文字が添えられることが多い。」とある。

dirコマンドのような通常の検索(つまり検索語だけを入力した、検索書式を指定しない検索)が完全一致の検索の場合、ワイルドカード「*」を前方一致や後方一致に使うと便利だ。前後に「*」を入れることで中間一致も指定できる。
前方一致「検索語*」、後方一致「*検索語」、完全一致「検索語」、中間一致「*検索語*」。

ところが、Googleをはじめ、最近の検索は通常の検索が中間一致になってきている。この場合、中間一致を指定する書式は不要で、逆に完全一致を指定する書式が必要になる。先ほどのGoogleの「前方一致」の検索結果を眺めていくと、横浜商科大学図書館のページでこの書式が見つかる。
http://library.shodai.ac.jp/OPACm/algorithm/japanese_sentence.htm
この例では「/」という文字を使って、前方・後方・完全一致を指定できる。
前方一致「/検索語」、後方一致「検索語/」、完全一致「/検索語/」、中間一致「検索語」という具合。

  • 前方一致「検索語*」
    • 通常検索が完全検索の場合
  • 前方一致「/検索語」
    • 通常検索が中間検索の場合

書式なしの検索が完全一致か中間一致かで「*」と「/」の位置が逆になっていることに注目。
「*」がワイルドカードとしていろいろな何かを表すイメージで、「検索語*」で検索語で始まり、その後に何かが続く語句を想起させる。対して「/検索語」では、「/」が語句の区切りをイメージし、検索語で始まり、検索語の前には何も付かないことを連想させる。発想が逆になっている。
「/」が区切りというのはすんなり受け入れやすいうまい文字だ。カッコと違い、一文字で前後両端に指定できる点もよい。「|」なんかでもいいかもしれない。より「壁」っぽいイメージがある。

通常の検索が完全一致と中間一致のどちらなのかに応じて、ワイルドカード指定書式と区切り文字指定書式をうまく使い分けるとよいですね。混ぜるな危険!