パターンマッチ 【pattern match】 パターンマッチング / pattern matching
文字列やビット列のパターンマッチでは、「この文書の中から “pattern” という単語を探す」というように、ある特定のデータに一致あるいは類似するデータを探し出す場合と、「pで始まりnで終わる単語を探す」というように、データの特徴を指定してそれに合致するものを探し出す場合がある。
画像や音声などのパターンマッチでは、特徴を抽出して比較し、類似度を算出したり、与えられたデータに一致するものがあるかを判定したりする。
文字列などの符号列の場合は、比較対象の全体が完全に同一であることを「完全一致」(exact match)、一方が他方に含まれる関係にある(または、両者に一致する箇所が存在する)ことを「部分一致」(partial match)という。それぞれ、そのような状態を一致とみなすような検索・比較方法のことを指す場合もある。
前方一致 (forward match)
先頭が検索語に一致する単語やフレーズを探すことを前方一致(forward match)という。例えば、「検索」というキーワードに前方一致する単語としては、「検索エンジン」「検索結果」「検索文字列」などが挙げられる。
プログラミングや検索エンジンで利用するときには、前方一致で検索することを示すために、「検索*」などのようにキーワードの末尾に任意の文字列を表すワイルドカード文字が添えられることが多い。
後方一致 (backward match)
末尾が検索語に一致する単語やフレーズを探すことを後方一致(backward match)という。例えば、「検索」というキーワードに後方一致する単語としては、「文字列検索」「イメージ検索」「サイト内検索」などが挙げられる。
プログラミングや検索エンジンで利用するときには、後方一致で検索することを示すために、「*検索」などのようにキーワードの先頭に任意の文字列を表すワイルドカード文字が添えられることが多い。
最短一致 (最短マッチ/shortest match)
検索条件に複数の候補が一致する場合に、最も短いものを優先あるいは選択することを最短一致あるいは最短マッチ(shortest match)という。
正規表現などで用いられる概念で、「AXBXCX」という文字列から「Aで始まりXで終わる」条件で文字列を検索すると、「AX」「AXBX」「AXBXCX」の3つがマッチするが、最短一致を指定すると最も短い「AX」が選択される。
最長一致 (最長マッチ/longest match)
検索条件に複数の候補が一致する場合に、最も長いものを優先あるいは選択することを最長一致あるいは最長マッチ(longest match)という。
正規表現などで用いられる概念で、「AXBXCX」という文字列から「Aで始まりXで終わる」条件で文字列を検索すると、「AX」「AXBX」「AXBXCX」の3つがマッチするが、最長一致を指定すると最も長い「AXBXCX」が優先・選択される。