| 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 |
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.
5.3.1.3 Character Matching
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.
Also note that within a single $[...]
construct, there can be multiple ranges of characters (
c1-
cn) and multiple lists of characters (c1c2...cn
), mixed and matched.
| Previous | Next | Contents | Index |