Previous | Contents | Index |
Patterns can contain wildcard characters. In particular, the usual
OpenVMS wildcard characters are allowed: an asterisk, *
,
will match zero or more characters and each percent sign,
%
, will match a single character. Asterisks, percent
signs, spaces, and tabs can be quoted by preceeding them with a dollar
sign, $
. Quoting an asterisk or percent sign robs it of
any special meaning. Spaces and tabs must be quoted to prevent them
from ending prematurely a pattern or template. Literal dollar sign
characters should be doubled, $$
, the first dollar sign
quoting the second one. Additional wildcards available in patterns are
listed in Table 5-1.
Wildcard | Description |
---|---|
% | Match exactly one character |
* | Match zero or more characters, with maximal or "greedy" left-to-right matching |
Back match | Description |
$ n* | Match the nth wildcard or glob |
Modifiers | Description |
$_ | Use minimal or "lazy" left-to-right matching |
$@ | Turn off "saving" of the succeeding wildcard or glob |
$^ | Turn on "saving" of the succeeding wildcard or glob; this is the default |
Glob | |
wildcard | Description |
$A% | Match one alphabetic character, A--Z or a--z |
$A* | Match zero or more alphabetic characters, A--Z or a--z |
$B% | Match one binary digit (0 or 1) |
$B* | Match zero or more binary digits (0 or 1) |
$D% | Match one decimal digit 0--9 |
$D* | Match zero or more decimal digits 0--9 |
$H% | Match one hexadecimal digit 0--9 or A--F |
$H* | Match zero or more hexadecimal digits 0--9 or A--F |
$O% | Match one octal digit 0--7 |
$O* | Match zero or more octal digits 0--7 |
$S% | Match one symbol set character, i.e., 0--9, A--Z, a--z, _, $ |
$S* | Match zero or more symbol set characters, i.e., 0--9, A--Z, a--z, _, $ |
$T% | Match one tab or vertical tab or space character |
$T* | Match zero or more tab or vertical tab or space characters |
$X% | A synonym for $H% |
$X* | A synonym for $H* |
$[ c]% | Match character c |
$[ c]* | Match arbitrary occurrences of character c |
$[ c 1 c 2 ... c n ]% | Match exactly one occurrence of character c 1 , c 2 , or c n |
$[ c 1 c 2 ... c n ]* | Match arbitrary occurrences of any characters c 1 , c 2 , or c n |
$[ c 1 -c n ]% | Match any one character in the range c 1 to c n |
$[ c 1 -c n ]* | Match arbitrary occurrences of characters in the range c 1 to c n |
$< IPv4> | Match an IPv4 address, ignoring bits |
$( IPv4) | Match an IPv4 address, keeping prefix bits |
${ IPv6} | Match an IPv6 address |
Within globs, i.e., within a $[...]
construct,
the backslash character, (\), is the quote character. To represent a
literal hyphen, -
, or right bracket, ]
,
within a glob the hyphen or right bracket must be quoted with a
backslash.
All other characters in a pattern just represent and match themselves. In particular, single and double quote characters as well as parentheses have no special meaning in either mapping patterns or templates; they are just ordinary characters. This makes it easy to write entries that correspond to illegal addresses or partial addresses.
Note that to specify multiple modifiers, or to specify modifiers and a
back match, the syntax uses just one dollar character. For instance, to
back match the initial wild card, without saving the back match itself,
one would use $@0
, not $@$0
.
Note that the PMDF TEST/MATCH (OpenVMS) or pmdf test -match
(UNIX) utility can be used to test mapping patterns and specifically to
test wildcard behavior in patterns.
5.3.1.1 The $_ modifier: minimal vs. maximal Matching
Asterisk, *
, wildcards maximize what they match working
from left to right across the pattern. For instance, when the string
a/b/c
is compared to the pattern */*
, the
left asterisk will match a/b
and the right asterisk will
match c
.
The $_
modifier causes wildcard matching to be minimized,
where the least possible match is considered the match, working from
left to right across the pattern. For instance, when the string
a/b/c
is compared to the pattern $_*/$_*
, the
left $_*
will match a
and the right
$_*
will match b/c
.
5.3.1.2 IP Matching
With IPv4 "prefix bits" matching, an IP address or subnet is
specified, optionally followed by a slash and the number of bits from
the prefix that are significant when comparing for a match. For
instance,
$(123.45.67.0/24) |
With IPv4 "ignore bits" matching, an IP address or subnet is specified, optionally followed by a slash and the number of bits to ignore when checking for a match. For instance,
$<123.45.67.0/8> |
$<123.45.67.4/2> |
IPv6 matching matches an IPv6 address or subnet.
Previous | Next | Contents | Index |