match(+パターン,+アトム) # match(+パターン,+アトム,-回答リスト)
これらの述語は、文字列のパタ−ンマッチングに使われます。「パタ−ン」はテンプレートとして指定するアトムで、任意の文字を含むことができます。記号'*'と'?'はUNIXのワイルドカ−ドと同様な意味を持ち、'*'は0個以上の任意の文字とマッチし、'?'は、任意の1文字とマッチします。UNIXの正規表現で使うような表記 '[集合]' を使って文字の集合を表すパターンを使うこともできます。文字集合としては、単にいくつかの文字を並べるだけでなく、2文字を'-'ではさんで連続した文字範囲を指定することもできます。この文字集合のパターンは、集合で指定した文字のいずれか1個とマッチします。「パタ−ン」に現れる他のすべての文字は、その文字自身とマッチします。
match/3では、「回答リスト」はマッチした文字列のリストと単一化されます。つまり、'*'や'?'などとマッチした「アトム」の中の文字や文字列のリストと単一化されます。match/3はバックトラック可能だということに注意して下さい。
?- match('?el*', hello).
yes ?- match('*ck*',backtrackable,L). L = [ba,trackable]; L = [backtra,able]; no ?- _
?- match('[0-9]*','22',L). L = ['2','2']; no ?- _