通配符模式匹配按从左到右的方式完成,一次匹配一个字符或基本通配符模式。模式和传入字符串必须完全匹配,因此,举例来说,模式“abc”与字符串“abcd”不匹配。复合模式包含由 (&) 号或波形符 (~) 分隔的基本模式。如果复合模式的第一个字符是 (&) 号或波形符,则会将该模式解释为好像开头有星号一样。例如,模式 ~*[0-9] 与不包含数字的任何字符串匹配。尾部 (&) 号只能匹配空字符串,而尾部波形符指示“除空字符串外”。
空格为有效字符,受匹配所限。
通配符模式包含下列各项。
字符 | 描述 | 示例 |
---|---|---|
? |
匹配任何单一字符 |
Example?.com 与 Example1.com 和 Example2.com 匹配,但与 Example01.com 不匹配 |
* |
与零个或多个字符匹配 |
Example*.com 与 example.com、example1.com 和 examplereallylong.com 匹配 |
[set] |
匹配集中的任何单个字符,或者,如果第一个字符为 ^,则与不在集中的任何字符匹配。 连字符表示范围。 不在第一个位置的脱字号 (^) 以及在第一个或最后一个位置的连字符没有特殊意义。 |
Ex[abc]mple 与 Example、Exbmple 和 Excmple 匹配。 Ex[^abc]mple 不与 Example、Exbmple 和 Excmple 匹配,但与 ExZmple 匹配 Ex[0-9] 与后面有一位数字的 Ex 匹配。 |
<n1-n2> |
与大于或等于非负值的 n1 以及小于或等于非负值的 n2 的任何整数匹配。 如果忽略 n1 或 n2,则表示无边界 |
10.193.220.<1-25> 与 10.193.220.1 和 10.193.220.25(包括这两个值)之间的所有 IP 地址匹配。 <10-> 与大于或等于 10 的任何数字字符串匹配。 <1-10>* 与后面具有诸如 1、20x 和 5z 等字符选项且介于 1 和 10 之间的任何数字匹配,但它与 11 不匹配,因为 11 不介于 1 和 10 之间。 |
| |
替代匹配 |
AB|DC 与 AB 或 DC 匹配 ABC| 与 ABC 或空字符串匹配 |
转义字符 |
||
\ |
(,)、[,]、< 和 > 的转义字符 |
\(A\) 与 (A) 匹配 |
& |
也表示“与” |
*NY*ROUTER 与包含 NY 和 ROUTER 的所有字符串匹配 <1-100>&*[02468] 与 1 和 100 之间的所有偶数匹配。 *A*|*B*&*C* 与包含一个 A 或一个 B 以及一个 C 的字符串匹配。 |
~ |
不包括 |
10.20.30.*~10.20.30.50 与 10.20.30 上除 10.20.30.50 之外的所有主机匹配。 *Router*~*Cisco*&*10.20.30.<5-10> 与除 Cisco 路由器之外地址介于 10.20.30.5 和 10.20.30.10 之间的路由器匹配。 |