パターンには、ワイルドカード文字を含めることができます。たとえば、次のような一般的なワイルドカード文字を使用できます。アスタリスク (*) はゼロまたはそれ以上の文字と一致し、パーセント記号 (%) は 1 つの文字に一致します。ドル記号 ($) をアスタリスク、パーセント記号、スペース、およびタブの前に置くことによって、それらの記号を文字として使用できるようになります。アスタリスクまたはパーセント記号を文字として使用した場合は、それらの特殊な定義が無効になります。パターンやテンプレートを正しく認識させるために、その中のスペースやタブは文字として認識させる必要があります。ドル記号を文字として使用するには、2 重のドル記号 ($$) を使用します。この場合、1 つめのドル記号によって、2 つめのドル記号を文字として認識されるようになります。
表 10–3 マッピングパターンのワイルドカード
ワイルドカード |
説明 |
% |
1 つの文字に一致します。 |
* |
左から右への最大限の一致を使用して、ゼロ以上の文字を一致します |
後照合 |
説明 |
$ n* |
n 番めのワイルドカードまたはグロブに一致します。 |
修飾子 |
説明 |
$_ |
左から右への最低限の一致を使用します。 |
$@ |
後続のワイルドカード、またはグロブの「保存」をオフにします。 |
$^ |
後続のワイルドカードまたはグロブの「保存」をオンにします。デフォルト設定です。 |
グロブワイルドカード |
説明 |
$A% |
A 〜 Z および a 〜 z のアルファベットのうち、1 つの文字に一致します。 |
$A* |
A 〜 Z および a 〜 z のアルファベットが 0 個以上含まれた文字列に一致します。 |
$B% |
1 桁の 2 進数 (0 または 1) に一致します。 |
$B* |
0 またはそれ以上の桁数の 2 進数 (0 または 1) に一致します。 |
$D% |
1 桁の 10 進数 (0 〜 9) に一致します。 |
$D* |
0 またはそれ以上の桁数の 10 進数 (0 〜 9) に一致します。 |
$H% |
1 桁の 16 進数 (0 〜 9 または A 〜 F) に一致します。 |
$H* |
0 またはそれ以上の桁数の 16 進数 (0 〜 9 または A 〜 F) に一致します。 |
$O% |
1 桁の 8 進数 (0 〜 7) に一致します。 |
$O* |
0 またはそれ以上の桁数の 8 進数 (0 〜 7) に一致します。 |
$S% |
1 つの記号セット文字 (例: 0 〜 9、A 〜 Z、a 〜 z、_、$) に一致します。 |
$S* |
ゼロまたはそれ以上の記号セット文字、すなわち 0 〜 9、A 〜 Z、a 〜 z、_、$ に一致します。 |
$T% |
1 つのタブ、垂直タブ、またはスペース文字に一致します。 |
$T* |
ゼロまたはそれ以上のタブ、垂直タブ、またはスペース文字に一致します。 |
$X% |
$H% と同義です。 |
$X* |
$H* と同義です。 |
$[ c]% |
文字 c に一致します。 |
$[ c]* |
文字 c の不定発生に一致します。 |
$[ c1 c2 ... cn ]% |
文字 c1、c2、または cn の発生の 1 つに一致します。 |
$[ c1 c2 ... cn ]* |
文字 c1、c2、または cn の不定発生に一致します。 |
$[ c1 -cn ]% |
c1 から c n までの文字のいずれか 1 つに一致します。 |
$[ c1 -cn ]* |
c1 から cn までの文字の不定発生に一致します。 |
$< IPv4> |
ビットを無視して、IPv4 アドレスに一致します。 |
$(IPv4) |
プレフィックスビットを維持した状態で、IPv4 アドレスに一致します。 |
${IPv6} |
1 組の IPv6 アドレスに一致します。 |
グロブ内、つまり $[...] 内では、円記号 (\) は引用符となります。実際のハイフン (-) または右角括弧 (]) をグロブ内で表すには、ハイフンまたは右角括弧に円記号を付ける必要があります。
パターン内のその他の文字はすべて、文字として使用されます。特に、一重引用符や二重引用符、および括弧は、マッピングパターンやテンプレートにおいて特殊な意味を持たず、通常の文字とみなされます。このため、不正なアドレスや部分的なアドレスに対応するエントリの書き出しが簡単になります。
複数の修飾子、または修飾子および後照合を指定するには、構文にドル記号を 1 つだけ使用します。たとえば、最初のワイルドカードを、後照合そのものを保存せずに後照合するには、$@$0 ではなく $@0 を使用します。
マッピングパターンのテスト、特にパターン内のワイルドカードの動作のテストを行うには、imsimta test -match ユーティリティーを使用できます。
アスタリスクのワイルドカードは、入力文字列を左から右へスキャンすることにより、一致する対象を最大化します。たとえば、入力文字列 a/b/c をパターン */* と比較する場合、左のアスタリスクが a/b に一致し、右のアスタリスクが残りの c に一致します。
$_ 修飾子は、ワイルドカードによる照合を最小にするため、パターンの左から右に向かって、もっとも可能性の少ない一致がその一致とみなされます。たとえば、文字列 a/b/c をパターン $_*/$_* と比較した場合、左の $_* は a と、右の $_* は b/c と一致します。