通配符

王朝百科·作者佚名  2009-10-24  
宽屏版  字体: |||超大  

通配符是一类键盘字符,有星号(*)和问号(?).

当查找文件呀文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者不想建入完整名字时,常常使用通配符代替一个或多个真正字符。

星号(*):可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。

问号(?):可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。

通配符包括星号“*”和问号“?”,星号表示匹配的数量不受限制,而后者的匹配字符数则受到限制。这个技巧主要用于英文搜索中,如输入““computer*”,就可以找到“computer、computers、computerised、computerized”等单词,而输入“comp?ter”,则只能找到“computer、compater、competer”等单词。

通配符优先级

对于使用通配符模式的各种资源,Tivoli Access Manager for Operating Systems 必须确定将应用何种通配符模式。例如,假设有两种模式:

/usr/local/*.log

/usr/local/user1/*.log

字符串 /usr/local/user1/x.log 与这两种模式都匹配。

为了解决这种模棱两可的情况,应用了优先级规则。模式越具体,其优先级也越高。根据这种原则,/usr/local/user1/x.log 在与 /usr/local/*.log 模式相匹配之前先与 /usr/local/user1/*.log 模式相匹配。由于找到一个匹配项,任何可应用于匹配此模式的对象的策略都将适用。

下表显示了通配符元素的优先级。表中较高位置的元素优先于表中较低位置的元素。

表:通配符元素优先级规则

优先级 元素 示例

1 精确字符 a, *, \

2 字符范围 [Aa], [[:digit:]]

3 任意字符 ?

4 重复的精确字符 a+

5 重复的字符范围 [Aa]+, [[:digit:]]+

6 重复的任意字符 ?+

7 任意字符串 *

根据资源的种类,将通过从开始到结束(或者相反方向)逐个元素比较模式来确定优先级。匹配文件名称的模式是从开始比较到结束。匹配主机名称的模式是从结束比较到开始。

除了认为相同的两种模式之外,将认为较长的模式比较短的模式更具体,除非较长的字符串是由于星号(*)而较长。

通配符优先级的示例

表 4 显示了按优先级从最高到最低排列的文件名和主机名通配符模式。

表 4. 通配符模式优先级示例

优先级 文件名称模式 主机名称模式

1 log/0[0-9]/error www.[a-z]tv.com

2 log/0?/error www.?tv.com

3 log/0*/error www.*tv.com

4 log/[0-9]+/error.1 www-help.[a-z]+v.com

5 log/*/error.1 www-help.*v.com

6 log*/error.1 www-help.*.com

7 log*/error www.*.com

8 log*/error* *www.*.com

9 log* *.com

10 * *

当两个模式之间的唯一差别是字符集合中指定的字符时,将通过逐字比较包含模式的两个字符串来确定优先级。仅在要匹配的字符集包含一些相同字符时才必须考虑这一点。如果在两个集合中没有公共字符,则任一给定的字符串最多只能匹配这两个模式中的一个。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有